Android 机器人向导、机器人贷款人和Eclipse
我使用RoboGuice 3.0 alpha-2,已经使用了很长一段时间,我对它很满意。现在我想升级到RoboGuice-3.0或-3.01,但我无法开始工作 “我使用Eclipse,我在一些项目中使用Android Studio,但我真的不喜欢它,”RoboBlender抱怨说AnnotationDatabaseImpl不存在。当我禁用Roboblender时,我Android 机器人向导、机器人贷款人和Eclipse,android,eclipse,roboguice,Android,Eclipse,Roboguice,我使用RoboGuice 3.0 alpha-2,已经使用了很长一段时间,我对它很满意。现在我想升级到RoboGuice-3.0或-3.01,但我无法开始工作 “我使用Eclipse,我在一些项目中使用Android Studio,但我真的不喜欢它,”RoboBlender抱怨说AnnotationDatabaseImpl不存在。当我禁用Roboblender时,我 E/AndroidRuntime(18825): FATAL EXCEPTION: main E/AndroidRuntime(1
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 Studio上的工作方式不感兴趣,我想知道如何使它在Eclipse中工作 AnnotationDatabaseImpl类由RoboBlender在编译时生成 您可以使用包名将以下内容指定为Java编译器参数
-AguiceAnnotationDatabasePackageName=some.package.name.here
这将在编译时生成所需的类
然后在清单中,您需要指向同一个包
<meta-data android:name="roboguice.annotations.packages" android:value="some.package.name.here"/>
对于maven设置,请参考以下答案:
在eclipse中,正确的方法是。它并没有让这个工作,虽然看到贝娄 Maven-工作解决方案 下面是我如何让它工作的——使用Maven。Maven生成注释数据库,以目标\生成的源\注释。因此,我只是简单地将此路径添加为eclipse中的源文件夹,瞧,不再有java.lang.ClassNotFoundException:AnnotationDatabaseImpl 蚂蚁相似解? 从你的问题来看,我猜你在用蚂蚁?!也许你可以代替maven Eclipse注释处理器——进一步的方法 如前所述,我第一次尝试使用eclipse注释处理器,几乎可以正常工作。 我添加到工厂路径。对于RoboBlender 3.0.1,这是 ,它的依赖性 及其依赖关系 和 . 因为我对注释数据库使用多个模块,所以我添加了处理器选项guiceAnnotationDatabasePackageName 这导致我的eclipse错误日志中出现一条信息消息,表示无法生成注释数据库,这正是。 不幸的是,这里没有stacktraces或任何东西,所以我放弃了这里,并使用maven找到了解决方案,如上所述。也许其他人可以在这里找到丢失的那块?
如果有帮助,您可以找到我使用RoboBlender的项目。Ah。我做了清单上的事,但不是财产。我会尝试。但我想我迟早会切换到Android Studio,不幸的是……我添加了java编译器参数,我的清单中已经有元数据行,但它仍然不会生成AnnotationDatabaseImpl文件。我在Intellij中这样做,并完成了完整的重建。您应该能够在生成的源代码和目标类目录下看到类的突然出现。如果没有meta标记,它会在classes目录的根目录中生成一个类,没有包名。不幸的是,我现在已经切换到Android Studio,所以这个问题对我来说不再那么重要了。