Ich möchte Klassen in anderen Ordnern als Aktivitäten einrichten. Aktuelle Ordnerstruktur:Wo kann ich Ordner von Klassen in Android Studio hinzufügen?
-> APP
-> Manifests
-> Java
-> com.test.testing
-> classes
auth.java
home_activity
-> libs
auth.java
package com.test.testing;
// error here: Package name ‘com.test.testing’ does not correspond to file path.
public class auth{
public void auth(){}
}
Plus, ich kann diese Klasse nicht in Tätigkeit nennen:
import classes.auth;
Also ich gradle ein bauen ging das sind meine Konfigurationen:
apply plugin: 'com.android.application'
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "com.test.testing"
minSdkVersion 15
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
sourceSets {
main {
java.srcDirs = ['src/main/java', 'java/', 'src/main/java/com/test/testing/classes']
assets.srcDirs = ['src/main/assets', 'src/main/assets/']
}
}
}
Android Studio ist ein wenig verwirrend über Ordnerstrukturen, wir haben mehrere Optionen zu wählen und ich habe keine Ahnung, was einige von ihnen tun. In meinem Fall habe ich den Ordner "Klassen" als "Java Folder" hinzugefügt.
EDIT 1: Die Spitze war ein Paket anstelle eines Ordner zu erstellen. Also habe ich das Paket und eine neue Datei darin erstellt. Automatisch, Android Studio gefüllt mit dieser Information die Datei auth.java;
package com.test.testing.classes;
public class auth {
}
Was passiert ist, dass ich immer noch nicht in der Lage bin, die Klasse in die Aktivitäten zu importieren. Althought, wenn ich (in der Tätigkeit) import classes
beginne Eingabe erscheint es als eine Dokumentation Hilfe, aber es hat kein Objekt zugeordnet ist, die sagten:
import classes.auth;
Fehler geben.
ich wieder ging Gradle-Datei zu erstellen und es etwas zu den java.srcDirs
nicht hinzufügen:
sourceSets {
main {
java.srcDirs = ['java/', 'src/main/java']
}
}
EDIT 2: Die Lösung des import
Problem war die Zeichenfolge. Statt
import classes.auth;
Sollte sein:
import com.test.testing.classes.auth;
Mach dir keine Sorgen, ich war nicht der Typ Upvoting. Ich habe deine Antwort aus zwei Gründen nicht akzeptiert: stackoverflow lässt mich noch nicht zu und finde auch nach dem Erstellen des Pakets einige Probleme. – Linesofcode