3

Я следуя инструкции из RoboBlender Wiki использовать базу данных аннотаций, но я получаю java.lang.IllegalStateException: Unable to use annotation database(s) потому что он не может найти AnnotationDatabaseImplRoboblender использовать базы данных аннотаций с несколькими модулями

Я использую 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 
+0

Если вы нашли проблему, пожалуйста, ответ на ваш вопрос и принимаю его – schnatterer

ответ

2

Через несколько часов я нашел проблему. Это была пролога. При добавлении следующей строки исправлена ​​проблема.

-keep public class * extends com.google.inject.AnnotationDatabase 

Вы можете проверить, что классы генерируются путем запуска в папке проекта:

find . | grep -i AnnotationDatabaseImpl 
+0

Можете ли вы опубликовать весь файл build.gradle? ... Я не могу запустить RoboBlender под AndroidStudio. – NemesisDoom

+0

Тот же вопрос для меня .. – vishnupriyan

2

список Вы модуль и баз данных аннотаций в вашем AndroidManifest.xml?

<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"/> 
+0

Да Im листинг модули и базы данных аннотаций , Я забыл добавить его к вопросу. Спасибо –