1 回答

TA貢獻1825條經(jīng)驗 獲得超6個贊
經(jīng)過一整天的麻煩,我找到了適合我的情況的解決方案。所描述的所有模塊 (, ) 都需要在我的應(yīng)用程序模塊中使用。Configuration_ModuleLocalisation_Module
因此,對于調(diào)用,我刪除了所有組件依賴項。@ApplicationScope@ModuleApplicationModule
應(yīng)用程序組件
@Component(modules = [ApplicationModule::class])
@ApplicationScope
abstract class ApplicationComponent {
abstract fun inject(mainActivity: MainActivity)
}
應(yīng)用模塊
@Module
class ApplicationModule(private val localisationComponent: LocalisationComponent,
private val configurationComponent: ConfigurationComponent) {
@Provides
@ApplicationScope
fun providesLocalisationRepository(): LocalisationRepository {
return localisationComponent.localisationRepository() // Provided by Localisation module with Dagger
}
@Provides
@ApplicationScope
fun providesConfigurationRepository(): ConfigurationRepository {
return configurationComponent.configurationRepository() // Provided by Configuration module with Dagger
}
}
最后是我的主要應(yīng)用程序
class MainApplication : Application() {
lateinit var applicationComponent: ApplicationComponent
override fun onCreate() {
super.onCreate()
this.registerDependencies()
}
private fun registerDependencies() {
val coreModule = CoreModule(applicationContext)
val applicationModule = ApplicationModule(LocalisationModule(coreModule).localisationComponent,
ConfigurationModule(coreModule).configurationComponent)
applicationComponent = DaggerApplicationComponent.builder()
.applicationModule(applicationModule)
.build()
}
}
我指出,一切都像一個魅力。
添加回答
舉報