46 votes

Dague 2: @ Component.Builder manque des paramètres pour les modules ou composants requis: [appi.example.com.dagger.AppModule] `

Je suis de la configuration de la nouvelle Dague Android module, mais j'ai eu cette erreur Voici mon Composant:

@AppScope
@Component(modules = {AppModule.class, NetModule.class})
public interface AppComponent {

  @Component.Builder
  interface Builder {
    @BindsInstance
    Builder application(ExampleApplication application);

    @BindsInstance
    Builder appModule(AppModule appModule);

    @BindsInstance
    Builder netModule(NetModule netModule);

    AppComponent build();
  }

  void inject(ExampleApplication __); 
...

Qui, je l'accumulation de ce genre dans mon Application

appComponent = DaggerAppComponent
      .builder()
      .application(this)
      .appModule(new AppModule(this))
      .netModule(new NetModule())
      .build()
      .inject(this);

Mais j'ai toujours l'erreur

Erreur:(20, 3) l'erreur: @Composant.Builder est manquant ouvreurs de modules requis ou les composants: [app.exemple.com.poignard.AppModule]

Selon la documentation qui doit être droit, Ce qui me manque?

Par exemple, ce pourrait être un Composant valide avec un Constructeur:

@Component(modules = {BackendModule.class, FrontendModule.class})
interface MyComponent {
  MyWidget myWidget();

  @Component.Builder
  interface Builder {
    MyComponent build();
    Builder backendModule(BackendModule bm);
    Builder frontendModule(FrontendModule fm);
  }
}

56voto

Gnanendra Kumar Points 683

Supprimez le code ci-dessous de AppModule.class et reconstruisez le projet.

     @Provides
    @Singleton
    Application provideContext(SomeApplication application) {
        return application;
    }
 

24voto

Hendy Irawan Points 4635

Je pense que cela fournit une explication un peu plus claire sur l'utilisation de l' @BindsInstance et la suppression de l' @Provides Application, Poignard 2 Générateur de Composants:

@BindsInstance Quoi?

Voici la définition :

Les marques d'une méthode sur un générateur de composants ou de sous-composant générateur de permet une instance d'être lié à un certain type dans le composante. - source

WHAAT? Je ne comprends pas qu'il soit

18voto

Federico Torres Points 21

Dans mon cas, j’utilisais un objet module, je devais donc annoter avec @JvmStatic

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X