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
- 模数
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