2013-10-24 19 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