我在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示例?
private void createStringEndingInRedColor(TextView tv, String word1, String word2) {
Spannable word = new SpannableString(word1);
tv.setText(word);
Spannable wordTwo = new SpannableString(word2);
wordTwo.setSpan(new ForegroundColorSpan(mContext.getResources().getColor(Color.RED)), 0, wordTwo.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
tv.append(wordTwo);
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试为TextView tv编写一个单元测试(使用Robolectric)以确保wordTwo是Color.RED.但是,我只提到了TextView tv.怎么去做这样的任务?