我正在配置新的Dagger Android模块,但是我遇到了这个错误。这是我的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 __);
...
这是我在我的应用程序中构建的方式
appComponent = DaggerAppComponent
.builder()
.application(this)
.appModule(new AppModule(this))
.netModule(new NetModule())
.build()
.inject(this);
但我仍然收到错误信息:
Error:(20, 3) error: @Component.Builder缺少必需的模块或组件的setter方法:[app.example.com.dagger.AppModule]
根据文档,这应该是正确的。我错了哪里呢?
例如,以下代码可以是带有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);
}
}
@BindsInstance
吗? - David MedenjakAppModule
和NetModule
构建器方法上有一个@BindsInstance
注释。 - David Medenjak