Я следуя инструкции из RoboBlender Wiki использовать базу данных аннотаций, но я получаю java.lang.IllegalStateException: Unable to use annotation database(s)
потому что он не может найти AnnotationDatabaseImpl
Roboblender использовать базы данных аннотаций с несколькими модулями
Я использую Android Studio и Gradle. Проект состоит из нескольких модулей.
- приложение
- ModuleA
- moduleB
- moduleC
Вот что я добавил в моих сценариях сборки:
приложение/build.gradle:
dependencies {
provided 'org.roboguice:roboblender:3.0.1'
provided 'org.roboguice:roboblender:3.0.1'
}
project.tasks.withType(JavaCompile) { task ->
options.compilerArgs << "-AguiceAnnotationDatabasePackageName=com.sample.myapp"
}
модуль [х] /build.gradle:
project.tasks.withType(JavaCompile) { task ->
options.compilerArgs << "-AguiceAnnotationDatabasePackageName=com.sample.module[x]"
}
На объекте Application:
RoboGuice.setUseAnnotationDatabases(true);
RoboGuice.getOrCreateBaseApplicationInjector(this, RoboGuice.DEFAULT_STAGE,
RoboGuice.newDefaultRoboModule(this), new MyModule());
RoboGuice.injectMembers(this, this);
я упускаю что-то? Я нашел некоторые подобные вопросы, но они были не очень полезны.
Обновление: Я забыл добавить его в первый раз, но да, я включаю манифест мета.
<meta-data android:name="roboguice.modules" android:value="your.package.MyModule"/>
<meta-data android:name="roboguice.annotations.packages" android:value="com.sample.myapp,com.sample.modulex,com.sample.moduley"/>
Update 2: я, наконец, нашел проблему. Proguard удалял класс. Исправлено, добавив:
-keep public class * extends com.google.inject.AnnotationDatabase
Если вы нашли проблему, пожалуйста, ответ на ваш вопрос и принимаю его – schnatterer