Android Roboblender将注释数据库与多个模块一起使用

Android Roboblender将注释数据库与多个模块一起使用,android,gradle,dependency-injection,roboguice,roboblender,Android,Gradle,Dependency Injection,Roboguice,Roboblender,我正在按照使用注释数据库的步骤进行操作,但我一直得到java.lang.IllegalStateException:无法使用注释数据库,因为它找不到AnnotationDatabaseImpl 我正在使用Android Studio和Gradle。该项目由多个模块组成 应用程序 模 模B 模数 以下是我添加到构建脚本中的内容: app/build.gradle: dependencies { provided 'org.roboguice:roboblender:3.0.1' pro

我正在按照使用注释数据库的步骤进行操作,但我一直得到
java.lang.IllegalStateException:无法使用注释数据库
,因为它找不到
AnnotationDatabaseImpl

我正在使用Android Studio和Gradle。该项目由多个模块组成

  • 应用程序
  • 模B
  • 模数
以下是我添加到构建脚本中的内容:

app/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"
}
project.tasks.withType(JavaCompile) { task ->
    options.compilerArgs << "-AguiceAnnotationDatabasePackageName=com.sample.module[x]"
}
我错过什么了吗?我发现了一些类似的问题,但它们不是很有用

更新: 我第一次忘了添加它,但是是的,我包含了清单元

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

您是否在
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"/>

几个小时后,我发现了问题。这是proguard。添加以下行修复了该问题

-keep public class * extends com.google.inject.AnnotationDatabase
您可以通过在项目文件夹中运行来检查类是否正在生成:

find . | grep -i AnnotationDatabaseImpl

是,Im列出了模块和注释数据库。我忘了把它加在问题上。谢谢如果你发现了问题,那么请回答你的问题并接受它。你能发布你的整个版本吗?。。。我不能在AndroidStudio下运行RoboBander。
-keep public class * extends com.google.inject.AnnotationDatabase
find . | grep -i AnnotationDatabaseImpl