首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >机器搅拌器使用具有多个模块的注释数据库。

机器搅拌器使用具有多个模块的注释数据库。
EN

Stack Overflow用户
提问于 2015-06-12 19:37:47
回答 2查看 1.3K关注 0票数 3

我按照RoboBlender维基中的步骤使用注释数据库,但是我一直在获取java.lang.IllegalStateException: Unable to use annotation database(s),因为它找不到AnnotationDatabaseImpl

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

  • 应用程序
  • moduleA
  • moduleB
  • moduleC

下面是我在构建脚本中添加的内容:

应用程序/build.gradle:

代码语言:javascript
复制
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"
}

modulex/build.gradle:

代码语言:javascript
复制
project.tasks.withType(JavaCompile) { task ->
    options.compilerArgs << "-AguiceAnnotationDatabasePackageName=com.sample.module[x]"
}

在应用程序对象上:

代码语言:javascript
复制
 RoboGuice.setUseAnnotationDatabases(true);
 RoboGuice.getOrCreateBaseApplicationInjector(this, RoboGuice.DEFAULT_STAGE,
 RoboGuice.newDefaultRoboModule(this), new MyModule());
        RoboGuice.injectMembers(this, this);

我是不是遗漏了什么?我发现了一些类似的问题,但它们不是很有用。

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

代码语言:javascript
复制
<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:我终于发现了问题。原卫兵正在删除这个班。通过添加:

代码语言:javascript
复制
-keep public class * extends com.google.inject.AnnotationDatabase
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-15 18:38:01

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

代码语言:javascript
复制
-keep public class * extends com.google.inject.AnnotationDatabase

您可以通过在项目文件夹中运行来检查这些类是否生成:

代码语言:javascript
复制
find . | grep -i AnnotationDatabaseImpl
票数 2
EN

Stack Overflow用户

发布于 2015-06-13 07:53:09

您在AndroidManifest.xml中列出了模块和注释数据库吗?

代码语言:javascript
复制
    <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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30810943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档