2015-01-06 18 views
16

Voglio impostare le classi in cartelle diverse dalle attività. attuale struttura di cartelle:Dove aggiungere una cartella di classi in 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(){} 
} 

Inoltre, non posso chiamare questa classe in attività:

import classes.auth; 

Così sono andato a costruire un Gradle questa sono le mie configurazioni:

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 è un po 'di confusione sulle strutture delle cartelle, abbiamo diverse opzioni da scegliere e non ho idea di cosa facciano alcuni di loro. Nel mio caso, ho aggiunto la cartella "classes" come "Java Folder". enter image description here

EDIT 1: La punta è stato quello di creare un pacchetto, invece di una cartella. Così ho creato il pacchetto e un nuovo file al suo interno. Automaticamente, Android Studio ha inserito queste informazioni nel file auth.java;

package com.test.testing.classes; 

public class auth { 

} 

Quello che succede è che non riesco ancora a importare la classe nelle attività. Althought quando si digita (in attività) import classes esso appare come una documentazione di aiuto, ma non ha alcun oggetto associato, che ha detto:

import classes.auth; 

dà l'errore.

sono andato di nuovo a costruire il file Gradle e non ha aggiunto nulla alla java.srcDirs:

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

EDIT 2: La soluzione al problema import era la stringa. Invece di

import classes.auth; 

dovrebbe essere:

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

Non preoccuparti, non ero il ragazzo che upvoting. Non ho accettato la tua risposta per due motivi: lo stackoverflow non mi consente ancora e sto riscontrando alcuni problemi anche dopo aver creato il pacchetto. – Linesofcode

risposta

17

Selezionare Package dalla lista qui sopra (in snap shot)

1

Penso che molte persone sono confusi circa la struttura dei file, eccolo :

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

Si può provare File -> New -> Package, in modo che Android Studio creerà la cartella nella posizione corretta.
(File -> New -> Java Class per le classi)

Problemi correlati