Maison >Java >javaDidacticiel >Erreurs de dépendance de Dagger 2 : comment puis-je résoudre le problème « ... ne peut pas être fourni [...] » ?

Erreurs de dépendance de Dagger 2 : comment puis-je résoudre le problème « ... ne peut pas être fourni [...] » ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-17 20:03:13379parcourir

Dagger 2 Dependency Errors: How Can I Fix the

Comment résoudre les erreurs de dépendance de Dagger 2

Problème : Erreur Dagger 2 : "... ne peut pas être fourni [...]"

Cette erreur se produit lorsque Dagger 2 n'est pas en mesure de fournir une dépendance sans un constructeur annoté @Inject ou un constructeur annoté @Provides. méthode.

Explication :

Dagger 2 s'appuie sur l'injection de dépendances basée sur les annotations pour créer et fournir des objets. Sans un constructeur @Inject ou une méthode @Provides, Dagger n'a aucun moyen de créer la dépendance.

Solutions :

Utiliser l'injection de constructeur :

  • Ajoutez un constructeur annoté @Inject à la classe dépendante. Cela permet à Dagger d'utiliser l'injection de constructeur pour créer l'objet.

Utilisez une méthode @Provides :

  • Créez un module et ajoutez un @Provides -méthode annotée pour fournir la dépendance. Ajoutez ce module à votre composant.

Exemple avec l'injection de constructeur :

class MyDependency {

    // Add `@Inject` annotation to the constructor
    @Inject
    public MyDependency() {}
}

Exemple avec la méthode @Provides :

@Module
public class MyModule {

    @Provides
    public MyDependency provideMyDependency() {
        return new MyDependency();
    }
}

@Component(modules = MyModule.class)
public interface MyComponent {
    MyDependency myDependency();
}

Faites attention aux détails :

  • Assurez-vous fournissez et demandez le même type de dépendance.
  • Vérifiez les fautes de frappe et les annotations incompatibles dans votre code.
  • Vérifiez à nouveau que vous avez ajouté le module nécessaire à votre composant.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn