首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RoboGuice、RoboBlender和Eclipse

RoboGuice、RoboBlender和Eclipse
EN

Stack Overflow用户
提问于 2014-12-09 19:17:28
回答 2查看 662关注 0票数 1

我使用RoboGuice 3.0 alpha-2,已经使用了很长一段时间了,我对此很满意。现在我想升级到RoboGuice3.0或-3.01,但我无法工作。

我使用Eclipse (我在某些项目中使用Android,但我真的不喜欢它),RoboBlender抱怨AnnotationDatabaseImpl不在那里。当我关掉机器搅拌器的时候,我会

代码语言:javascript
复制
E/AndroidRuntime(18825): FATAL EXCEPTION: main
E/AndroidRuntime(18825): java.lang.NoClassDefFoundError: com.google.inject.internal.util.$Maps
E/AndroidRuntime(18825):    at com.google.inject.assistedinject.BindingCollector.<init>(BindingCollector.java:34)
E/AndroidRuntime(18825):    at com.google.inject.assistedinject.FactoryModuleBuilder.<init>(FactoryModuleBuilder.java:206)
E/AndroidRuntime(18825):    at com.loqli.android.robo.GossipModule.configure(GossipModule.java:260)
E/AndroidRuntime(18825):    at com.google.inject.AbstractModule.configure(AbstractModule.java:78)
E/AndroidRuntime(18825):    at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:252)
E/AndroidRuntime(18825):    at com.google.inject.spi.Elements.getElements(Elements.java:107)
E/AndroidRuntime(18825):    at com.google.inject.internal.InjectorShell$Builder.build(InjectorShell.java:135)
E/AndroidRuntime(18825):    at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:104)
E/AndroidRuntime(18825):    at com.google.inject.Guice.createInjector(Guice.java:100)
E/AndroidRuntime(18825):    at com.google.inject.Guice.createInjector(Guice.java:87)
E/AndroidRuntime(18825):    at roboguice.RoboGuice.createGuiceInjector(RoboGuice.java:186)
E/AndroidRuntime(18825):    at roboguice.RoboGuice.getOrCreateBaseApplicationInjector(RoboGuice.java:151)
E/AndroidRuntime(18825):    at roboguice.RoboGuice.getOrCreateBaseApplicationInjector(RoboGuice.java:90)

我回到了alpha-2,但现在我想知道,RG和RB应该与Eclipse和ant一起工作吗?

编辑:我提到了"Eclipse“。我对它在Android上的工作方式不感兴趣,我想知道如何使它在Eclipse中工作。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-13 09:13:59

eclipse中正确的方法将是将RoboBlender设置为注释处理器。但这并没有奏效(见下文)。

Maven -工作解决方案

这是我怎么让它工作的-使用Maven。Maven将注释数据库生成为target\generated-sources\annotations。因此,我只是在eclipse和voilà中添加了这个路径作为源文件夹,不再使用java.lang.ClassNotFoundException: AnnotationDatabaseImpl

类似的解决方案?

从你的问题上我猜你在用蚂蚁?!也许你可以用使用ant设置注释处理代替maven?

Eclipse注释处理器--一种进一步的方法

如前所述,我第一次尝试使用eclipse注释处理器,几乎可以让它正常工作。我将RoboBlender及其传递依赖关系添加到工厂路径。对于RoboBlender 3.0.1,这是

  1. RoboBlender及其依赖性
  2. 速度及其依赖关系
  3. 共用-收藏
  4. 公朗

因为我在注释数据库中使用了多个模块,所以我添加了处理器选项guiceAnnotationDatabasePackageName

这在我的eclipse日志中产生了一条信息消息,上面写着Impossible to generate annotation database.,这正是RoboGuice的AnnotationDatabaseGenerator引发的通用异常的消息。

不幸的是,没有堆栈痕迹或任何东西,所以我放弃了这里,找到了使用maven的解决方案,如上面所述。也许其他人能在这里找到丢失的那块?

如果它能帮助您找到我使用RoboBlender 这里的项目。

票数 0
EN

Stack Overflow用户

发布于 2014-12-10 19:56:00

AnnotationDatabaseImpl类是由RoboBlender在编译时生成的。

可以将以下内容指定为Java参数(使用您的包名)

代码语言:javascript
复制
-AguiceAnnotationDatabasePackageName=some.package.name.here

这将在编译时生成所需的类。

然后,在您的清单中,您需要指向同一个包。

代码语言:javascript
复制
 <meta-data android:name="roboguice.annotations.packages" android:value="some.package.name.here"/>

对于maven设置,请参考这里的答案:

被注入的对象在升级到Roboguice 3后变为空。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27387029

复制
相关文章

相似问题

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