我一直在尝试使用Dagger(v1.1.0)为我的Android应用程序设置活动图。虽然它编译得很好,但我得到如下所示的错误(完整跟踪here):
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);
}
这个模块肯定被添加到我的BaseActivity中的applicationGraph(后来保存为activityGraph)中,BaseFragment将自己注入activityGraph。
答案 0 :(得分:0)
Dagger使用注释处理器来编写代码。如果您的课程没有注释,则无法找到它。确保为每个类添加注释。例如。如果要注入成员,则必须使用@Inject。尝试确保您注入的所有类都列在@Module(inject = ...)下。尽量确保所有类都在某个模块类中列出。