Erreur Dagger 2 : résoudre le problème « Impossible de fournir »
)Résumé du problème
Dagger 2 peut afficher l'erreur suivante lors de la compilation d'un projet :
error: com.example.MyDependency cannot be provided without an @Inject constructor or from an @Provides-annotated method.
Cette erreur indique que Dagger ne dispose pas des informations nécessaires pour créer ou fournir la dépendance spécifiée.
Comprendre le problème
Dagger nécessite un mécanisme pour fournir ou créer l’objet qu’il doit injecter. Par défaut, il s'attend à ce que les dépendances aient un constructeur annoté @Inject ou une méthode dans un module annotée avec @Provides.
Résolution
Il existe deux approches principales pour résoudre ce problème :
1. Ajoutez un constructeur annoté @Inject :
Ajoutez une annotation @Inject au constructeur de la classe de dépendance. Par exemple :
class MyDependency { @Inject MyDependency() { /**/ } }
2. Créez une méthode @Provides-Annotée dans un module :
Créez une classe de module et ajoutez-y une méthode annotée avec @Provides. Cette méthode créera ou liera la dépendance souhaitée. Par exemple :
@Module class MyModule { @Provides MyDependency provideMyDependency() { return new MyDependency(); } }
Considérations supplémentaires
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!