0

Dagger (v1.1.0) を使用して Android アプリケーションのアクティビティ グラフをセットアップしようとしています。正常にコンパイルされますが、以下に示すエラーが発生します (完全なトレースはこちら)。

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に注入しています。

4

1 に答える 1

0

Dagger は、注釈プロセッサを使用してコードを記述します。クラスに注釈が付けられていない場合、クラスは見つかりません。すべてのクラスに注釈を追加してください。たとえば、メンバーを注入する場合は、@Inject を使用する必要があります。注入するすべてのクラスが @Module(inject=...) の下にリストされていることを確認してください。すべてのクラスがモジュール クラスのどこかにリストされていることを確認してください。

于 2013-10-27T21:11:31.230 に答える