ホームページ >Java >&#&チュートリアル >Dagger 2 エラー:「提供できません...」 – 依存性注入の問題を修正する方法?

Dagger 2 エラー:「提供できません...」 – 依存性注入の問題を修正する方法?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-20 18:08:13796ブラウズ

Dagger 2 Error:

Dagger 2 の依存関係プロビジョニング エラーのトラブルシューティング: 「提供できません...」

問題:

Dagger 2アクセスしようとすると、「com.example.MyDependency を提供できません [...]」というエラーが返されます。依存性。このエラーは、指定された依存関係を作成または提供するために必要なメカニズムが Dagger にないことを示します。

説明:

エラー メッセージが示すように、Dagger には 2 つのメソッドのいずれかが必要です。依存関係を提供します:

  • @Inject アノテーションが付けられたクラスコンストラクター
  • コンポーネントのモジュールの 1 つで @Provides アノテーションが付けられたメソッド

修正:

この問題を解決するには、次のことを確認してください。いずれか:

@Inject Constructor

  1. として使用するクラスに @Inject アノテーション付きコンストラクター を追加します。 dependency.

    • 例:

      class MyDependency {
          @Inject
          MyDependency() { /**/ }
      }

@モジュール内のメソッドを提供します

  1. モジュールを作成し、@Provides を追加します必要な依存関係のインスタンスを返すアノテーション付きメソッド
  2. モジュールをコンポーネントに追加します。宣言.

    • 例:

      @Module
      class MyModule {
          @Provides
          MyDependency provideMyDependency() {
              return new MyDependency();
          }
      }
      
      @Component(modules = MyModule.class)
      interface MyComponent {
          MyDependency myDependency();
      }

追加メモ:

  • 提供された依存関係と要求された依存関係が一致していることを確認します。インターフェイスや修飾子も含めて完全に一致します。
  • 他のクラスを拡張または実装する場合は、@Binds を使用して特定の実装をインターフェイスまたはスーパークラスにマップすることを検討してください。

以上がDagger 2 エラー:「提供できません...」 – 依存性注入の問題を修正する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。