我当前的Android项目包含以下模块
1)。主要应用程序
2)。 Android模块A
3)。 Android模块B
4)。 Java模块C
5)。 Android模块D
我使用Dagger 2 (v2.15)
作为我的DI框架。
我正在尝试注入以下依赖项: -
将Android模块A实例注入主应用程序
将Java模块C实例注入主应用程序
将Android模块D实例注入主应用程序
将Android模块B实例注入Android模块A
每个模块都有以下两个与Dagger相关的类/接口
@Module
public class ModuleX {
@Singleton
@Provides
static ClassX provideClassX() {
return new ClassXImpl();
}
}
@Singleton
@Component(modules = {ModuleX.class})
public interface ClassXComponent {
}
我的主应用程序具有以下与Dagger相关的类/接口
@Module
public abstract class MainActivityModule {
@ContributesAndroidInjector
abstract MainActivity contributeMainActivity();
@ContributesAndroidInjector
abstract Second contributeSecond();
}
@Singleton
@Component(modules = {
AndroidInjectionModule.class,
MainActivityModule.class,
ModuleA.class,
ModuleB.class,
ModuleC.class,
ModuleD.class})
public interface AppComponent {
@Component.Builder
interface Builder {
@BindsInstance
Builder application(Application application);
AppComponent build();
}
void inject(MyApplication myApplication);
}
除了注入之外,此配置还成功注入了我所需的所有依赖项 Android模块B实例进入Android模块A. Dagger2是否可以注入依赖项 "之间"模块?
为了达到理想的解决方案,我缺少什么?