Dagger 2 エラー: 「提供できない」問題を解決する
)問題の概要
Dagger 2 は、コンパイル時に次のエラーを表示する場合があります。プロジェクト:
error: com.example.MyDependency cannot be provided without an @Inject constructor or from an @Provides-annotated method.
このエラーは、指定された依存関係を作成または提供するために必要な情報が Dagger にないことを示します。
問題の理解
Dagger注入する必要があるオブジェクトを提供または作成するメカニズムが必要です。デフォルトでは、依存関係には @Inject アノテーションが付けられたコンストラクター、または @Provides アノテーションが付けられたモジュール内のメソッドがあることが期待されます。
解決
この問題の解決方法:
1. @Inject アノテーション付きコンストラクターを追加します:
依存関係クラスのコンストラクターに @Inject アノテーションを追加します。例:
class MyDependency { @Inject MyDependency() { /**/ } }
2.モジュール内に @Provides アノテーション付きメソッドを作成します:
モジュール クラスを作成し、それに @Provides アノテーション付きメソッドを追加します。このメソッドは、必要な依存関係を作成またはバインドします。例:
@Module class MyModule { @Provides MyDependency provideMyDependency() { return new MyDependency(); } }
追加の考慮事項
以上がDagger 2 エラー: 「提供できません」を解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。