2015-01-06 12 views
16

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. enter image description here

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; 
+0

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

Antwort

17

Wählen Package aus der Liste oben (in der Schnappschuß)

1

Ich denke, viele Leute hier sind verwirrt über die Dateistruktur, es ist :

app 
    |--> manifests 
    |--> java 
    |  |--> com.example.yourapp 
    |  |      |--> MainActivity.java 
    |  |      |--> YOUR_PACKAGE_FOLDER 
    |  | 
    |  |--> com.example.yourapp(android test) 
    |  |--> com.example.yourapp(test) 
    | 
    |--> res 

Sie können versuchen File -> New -> Package, so dass Android Studio den Ordner am richtigen Ort erstellen wird.
(File -> New -> Java Class für Klassen)

Verwandte Themen