Ich arbeite derzeit an einer Android-Bibliothek, die mit AndroidAnnotations entwickelt wurde und einige Fragmente verwendet. Wenn es als Android-Anwendung kompiliert wird, ist der Code in Ordnung und alles funktioniert. Wenn es als Android-Bibliothek kompiliert wird, bricht es ab, weil es keine der von AndroidAnnotations generierten Klassen finden kann.Bibliotheks-Projekt mit AndroidAnnotations und Fragmenten kompilieren
Ich notierte jede Aktivität mit @EActivity(resName="activity_name")
anstelle von @EActivity(R.layout.activity_name)
, und das behebt ein paar Fehler.
Das Problem, das ich begegnet ist, dass in einigen dieser Aktivitäten schaffen, ich so einige Fragmente dynamisch (zum Beispiel):
PhotoFragment fragment = PhotoFragment_.builder().someParams("a string param").build();
Wenn ich versuche, als Android-Bibliothek zu kompilieren, schlägt dieser Aufruf, weil Es kann die dynamisch generierte Klasse PhotoFragment_
nicht finden. Gibt es eine Lösung, damit es funktioniert? Entweder durch Ändern der Art, wie ich das Fragment erstellt habe, oder durch Konfigurieren von AndroidAnnotations?
EDIT 20/04/2016
Meine build.gradle
(Modulebene):
apply plugin: 'com.android.library'
apply plugin: 'android-apt'
def AAVersion = '4.0.0'
android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig {
minSdkVersion 14
targetSdkVersion 23
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
// Barcode library (ZXing)
compile 'com.journeyapps:zxing-android-embedded:3.0.2'
compile 'com.google.zxing:core:3.2.0'
// Android Annotations
apt "org.androidannotations:androidannotations:$AAVersion"
compile "org.androidannotations:androidannotations-api:$AAVersion"
// Android Bootstrap
compile 'com.beardedhen:androidbootstrap:2.1.0'
// Gson
compile 'com.google.code.gson:gson:2.4'
// Some auto-generated BS
compile 'com.android.support:design:23.2.1'
compile 'com.android.support:support-v4:23.2.1'
// Robotium --> Emulate User Interaction on tests
compile 'com.jayway.android.robotium:robotium-solo:5.5.4'
// Android Testing
androidTestCompile 'com.android.support:support-annotations:23.2.1'
androidTestCompile 'com.android.support.test:runner:0.5'
androidTestCompile 'com.android.support.test:rules:0.5'
// OkHTTP (HTTP Client Library)
compile 'com.squareup.okhttp3:okhttp:3.2.0'
}
apt {
arguments {
library 'true'
}
}
Vielen Dank!
Sie sehen nicht die generierten Klassen innerhalb der Bibliothek oder die generierten Klassen außerhalb der Bibliothek (z. B. in der App, die die Bibliothek verwendet)? – WonderCsabo
@WonderCsabo Ich sehe nicht die generierten Klassen in der Bibliothek. In diesem Moment versuche ich nur, die Bibliothek als AAR zu kompilieren, und ich kann nicht :) –
Was ist Ihre AA-Version? – WonderCsabo