ホームページ >Java >&#&チュートリアル >Dagger 2 の「提供できません」エラーを修正する方法は?

Dagger 2 の「提供できません」エラーを修正する方法は?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-10 16:02:14170ブラウズ

How to Fix Dagger 2's

ダガー 2 エラーの修正: 「... を提供できません [...]」

このエラーは、ダガー 2 が提供できない場合に発生しますアノテーションが付けられたコンストラクターまたは @Provides アノテーションが付けられたメソッドのない依存関係。これを解決するには:

1. @Inject コンストラクターを追加します

提供されていないクラスに @Inject アノテーション付きコンストラクターを追加します。

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

Dagger はこのコンストラクターを使用してインスタンスを作成します。

2.モジュール内に @Provides メソッドを作成します

または、依存関係を返すモジュール内に @Provides アノテーションが付けられたメソッドを作成します。

@Module
class MyModule {
    @Provides
    MyDependency provideMyDependency() {
        return new MyDependency();
    }
}

Dagger はこのメソッドを使用して作成します

追加考慮事項

  • 提供された依存関係が要求された依存関係と同じタイプであることを確認します (つまり、スーパークラスまたはインターフェイスではない)。
  • コンポーネントが依存関係を提供していることを確認します (例: MyComponent.myDependency()).
  • インターフェイスを使用する場合は、@Binds を使用します。提供される実装を指定します。

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

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