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".
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;
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