Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Dagger 2: @Component.Builder is missing setters for required modules or components: [appi.example.com.dagger.AppModule]`

I'm configuring the new Dagger Android module but I got this error Here's my Component:

@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 __);  ... 

Which I build like this in my Application

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

But I still receive the error

Error:(20, 3) error: @Component.Builder is missing setters for required modules or components: [app.example.com.dagger.AppModule]

According to the documentation that should be right, What am I missing?

For example, this could be a valid Component with a Builder:

@Component(modules = {BackendModule.class, FrontendModule.class}) interface MyComponent {   MyWidget myWidget();    @Component.Builder   interface Builder {     MyComponent build();     Builder backendModule(BackendModule bm);     Builder frontendModule(FrontendModule fm);   } } 
like image 822
Leonardo Deleon Avatar asked May 20 '17 07:05

Leonardo Deleon


1 Answers

Remove the below code from the AppModule.class and rebuild the project

    @Provides     @Singleton     Application provideContext(SomeApplication application) {         return application;     } 
like image 76
Gnanendra Kumar Avatar answered Sep 28 '22 07:09

Gnanendra Kumar