我在 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)
如何让 Dagger 示例通过 Eclipse 工作?