我在Android中使用Dagger进行依赖注入,使用Eclipse进行构建.我已经克隆了android-activity-graphs作为例子.
我根据来自https://github.com/square/dagger/issues/126的staxgr设置了我的环境.
这些是我的库:dagger-1.1.0.jar,dagger-compiler-1.1.0.jar,以及javax.inject.jar
最后,我已经将Eclipse中的源文件夹更改为指向src/main/java(而不仅仅是src/),以便Eclipse通过package关键字检测相关文件.
该项目构建,但在运行此异常时立即失败:
Caused by: java.lang.IllegalStateException:
Module adapter for class
com.example.dagger.activitygraphs.AndroidModule could not be loaded.
Please ensure that code generation was run for this module.
at dagger.internal.FailoverLoader.getModuleAdapter(FailoverLoader.java:41)
at dagger.internal.Modules.getAllModuleAdapters(Modules.java:43)
at dagger.ObjectGraph$DaggerObjectGraph.makeGraph(ObjectGraph.java:167)
at dagger.ObjectGraph$DaggerObjectGraph.access$000(ObjectGraph.java:134)
at dagger.ObjectGraph.create(ObjectGraph.java:126)
at com.example.dagger.activitygraphs.DemoApplication.onCreate(DemoApplication.java:29)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1000)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4391)
Run Code Online (Sandbox Code Playgroud)
如何通过eclipse获得Dagger示例?
sud*_*der 22
问题是我错过了javawriter库.此外,你必须使用javawriter的2.2.1版本而不是2.3.0的最新版本(这可能会改变,但在2013年11月27日编写时仍然如此).提供的链接应该带您到正确的地方.请加倍三重检查,总共六次.我还将列出您可能会看到此消息的其他原因列表.
首先,请确保选中所有这些复选框.
项目 - >属性 - > Java编译器 - >启用项目特定设置
项目 - >属性 - > Java编译器 - >注释处理 - >启用项目特定设置
项目 - >属性 - > Java编译器 - >注释处理 - >工厂路径 - >启用项目特定设置.
然后在同一个屏幕上,单击"添加jar"并在此列表中添加:javawriter-2.2.1.jar,dagger-1.1.0.jar,dagger-compiler-1.1.0.jar和javax.inject.jar总共四个罐子.
这四个罐子应该放在项目主路径上名为"libs"的文件夹中.
如果您正在使用库并希望在这些库中使用Dagger for DI,那么您还必须对这些项目执行上述步骤.
| 归档时间: |
|
| 查看次数: |
7509 次 |
| 最近记录: |