我正在从RoboBlender Wiki开始遵循使用注释数据库的步骤,但是我一直在获取java.lang.IllegalStateException:无法使用注释数据库,因为它找不到AnnotationDatabaseImpl
我正在使用AndroID Studio和Gradle.该项目包含多个模块.
>应用
>模块A
>模块B
>模块C
这是我添加到构建脚本中的内容:
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"}
module [x] /build.gradle:
project.tasks.withType(JavaCompile) { task -> options.compilerArgs << "-AguiceAnnotationDatabasePackagename=com.sample.module[x]"}
在应用程序对象上:
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"/>
更新2:
我终于找到了问题. Proguard正在删除课程.通过添加以下内容进行修复:
-keep public class * extends com.Google.inject.AnnotationDatabase
解决方法:
您是否在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"/>
总结 以上是内存溢出为你收集整理的android-Roboblender使用带有多个模块的注释数据库全部内容,希望文章能够帮你解决android-Roboblender使用带有多个模块的注释数据库所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)