2013-10-24 58 views
0

我一直在试图用Dagger(v1.1.0)为我的Android应用程序设置活动图。虽然它编译罚款,我得到如下图所示这个错误(完整跟踪here):Dagger找不到注射成员

No injectable members on com.f2prateek.couchpotato.ui.ActivityActionBarController. Do you want to add an injectable constructor? required by class com.f2prateek.couchpotato.ui.fragments.DetailedMovieGridFragment 

我会尽我所能来突出重要的部分,但如果我错过了什么,我的全部项目上GitHub。只需运行./gradlew clean assemble即可构建apk。我的ActivityModule有Dagger似乎无法找到的提供者方法。

@Provides @Singleton ActivityActionBarController provideActionBarTitleController() { 
    return new ActivityActionBarController(activity); 
} 

该模块是绝对被添加到applicationGraph(其然后被保存为activityGraph)在我BaseActivity,并且BaseFragment本身注入activityGraph。

+0

曾经解决过这个问题吗? –

回答

0

Dagger使用注解处理器来编写它的代码。如果你的班级没有注释,它找不到它。确保您为每个班级添加注释。例如。如果你想注入一个成员,你必须使用@Inject。尝试确保您注入的所有类都在@Module(inject = ...)中列出。尽量确保所有类都在某个模块类中列出。

+0

据我所知,我已经完成了所有这些。 Activity被列在模块的'injects'下面(它能够从应用程序图中获得依赖关系)。依赖项具有提供者方法,活动正在添加到活动图中,并且依赖项在活动中具有@Inject注释。还有什么我会错过的? – f2prateek