我在我的应用程序中创建daggerappcomponent,如下
protected AppComponent createComponent() {
return DaggerAppComponent.builder().appModule(new AppModule(this)).build();
}
AppModule包含下面的`taperulemodule。
@Module(includes = {FeatureModule.class})
public class AppModule {
// All the provides here
}
现在,我计划在功能移动器中有一个单独的项目进行调试。因此,我创建了我的特色杂志模块,从featuremodule
继承@Module
public class FeatureDebugModule extends FeatureModule {
@Override
protected void debugBuildSpecificConfig() {
// Something specific to debug
}
}
我还创建了AppDebugmodule从AppModule继承
@Module(includes = {FeatureDebugModule.class})
public class AppDebugModule : AppModule {
}
最后,我做了我制作的AppDebugapplication,将dagger组件设置为
protected AppComponent createComponent() {
return DaggerAppComponent.builder().appModule(new AppDebugModule(this)).build();
}
以某种方式,代码在我的调试模式下无法访问FeatureDebugModule
,但仍在FeatureModule
代码上。我做错了什么?
显然对于dagger,加载模块基于组件模块中定义的模块。因此,在调试中,我使用如下。
@Singleton
@Component(modules = {AppDebugModule.class})
public interface AppDebugComponent extends AppComponent {
// Inject
}
和dagger组件创建
DaggerAppDebugComponent.builder().appDebugModule(new AppDebugModule(this)).build();
在版本中,我按以下
使用@Singleton
@Component(modules = {AppReleaseModule.class})
public interface AppReleaseComponent extends AppComponent {
// Inject
}
和dagger组件创建
DaggerAppReleaseComponent.builder().appReleaseModule(new AppReleaseModule(this)).build();