2015-01-06 16 views
16

Chcę ustawić klasy w różnych folderach niż czynności. Obecna struktura folderów:Gdzie dodać folder zajęć w Android Studio?

-> 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, nie mogę nazwać tę klasę aktywności:

import classes.auth; 

Poszedłem więc do budowania Gradle An to są moje konfiguracje:

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 jest trochę zagmatwany odnośnie struktur folderów, mamy kilka opcji do wyboru i nie mam pojęcia, co niektórzy z nich robią. W moim przypadku dodałem folder "classes" jako "Java Folder". enter image description here

EDIT 1: czubek utworzyć pakiet zamiast folderu. Tak więc utworzyłem w nim pakiet i nowy plik. Automatycznie, studio android wypełnione tą informacją plik auth.java;

package com.test.testing.classes; 

public class auth { 

} 

Co się stanie, że nadal nie jestem w stanie zaimportować zajęć do zajęć. Mimo, kiedy zacznę wpisywać (aktywności) import classes jawi się jako pomoc dokumentacji, ale nie ma żadnych przedmiotów powiązanych, który powiedział:

import classes.auth; 

daje błąd.

poszedłem ponownie zbudować plik Gradle i nie dodaje niczego do java.srcDirs:

sourceSets { 
     main { 
      java.srcDirs = ['java/', 'src/main/java'] 
     } 
    } 

EDIT 2: Rozwiązaniem problemu import był łańcuch. Zamiast

import classes.auth; 

Powinno być:

import com.test.testing.classes.auth; 
+0

Nie martw się, nie byłem tym facetem, który przegrał. Nie przyjąłem twojej odpowiedzi z dwóch powodów: stackoverflow nie pozwala mi jeszcze na to, i znajduję pewne problemy nawet po utworzeniu paczki. – Linesofcode

Odpowiedz

17

Wybierz Package z powyższej listy (w snap shot)

1

Myślę, że wielu ludzi nie zna struktury plików, to jest tutaj :

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

Możesz spróbować File -> New -> Package, aby studio android utworzyło folder we właściwej lokalizacji.
(File -> New -> Java Class dla klas)

Powiązane problemy