Dagger 2-Fehler: Problem „Kann nicht bereitgestellt werden“ beheben
)Problemzusammenfassung
Dagger 2 zeigt beim Kompilieren eines Projekts möglicherweise den folgenden Fehler an:
error: com.example.MyDependency cannot be provided without an @Inject constructor or from an @Provides-annotated method.
Dies Der Fehler weist darauf hin, dass Dagger nicht über die notwendigen Informationen verfügt, um die angegebene Abhängigkeit zu erstellen oder bereitzustellen.
Verstehen des Problems
Dagger benötigt einen Mechanismus, um das benötigte Objekt bereitzustellen oder zu erstellen injizieren. Standardmäßig wird erwartet, dass Abhängigkeiten einen mit @Inject annotierten Konstruktor oder eine Methode in einem mit @Provides annotierten Modul haben.
Auflösung
Es gibt zwei Hauptansätze dafür Behebung dieses Problems:
1. Fügen Sie einen @Inject-annotierten Konstruktor hinzu:
Fügen Sie eine @Inject-Annotation zum Konstruktor der Abhängigkeitsklasse hinzu. Zum Beispiel:
class MyDependency { @Inject MyDependency() { /**/ } }
2. Erstellen Sie eine mit @Provides annotierte Methode in einem Modul:
Erstellen Sie eine Modulklasse und fügen Sie ihr eine mit @Provides annotierte Methode hinzu. Diese Methode erstellt oder bindet die gewünschte Abhängigkeit. Zum Beispiel:
@Module class MyModule { @Provides MyDependency provideMyDependency() { return new MyDependency(); } }
Zusätzliche Überlegungen
Das obige ist der detaillierte Inhalt vonDagger 2-Fehler: Wie behebe ich „Kann nicht bereitgestellt werden'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!