我有一个使用匕首2的子组件模块。
@Subcomponent(modules = arrayOf(LoginPageActivityModule::class))
class AuthModule {
@Provides
internal fun provideAuthDataManager(appDataManager: AppDataManagerImpl): AuthRepository {
return AuthRepository(appDataManager)
}
@Subcomponent.Builder
internal interface Builder {
fun requestModule(module: AuthModule): Builder
fun build(): AppComponent
}
}我想把它加到另一个模块里-
@Module(subcomponents = arrayOf(AuthModule::class))
class LoginPageActivityModule {
@Provides
internal fun provideLoginPageViewModel(dataManager: LoginRepository,authDataManager: AuthRepository): LoginPageViewModel {
return LoginPageViewModel(dataManager,authDataManager)
}
}当我这么做的时候,我会得到这个问题-
没有参数的
@Subcomponent.Builder方法必须返回@子组件类型或@子组件公共抽象com.lola.AppComponent构建()的超级类型;
我如何删除一个工厂或建筑?
发布于 2019-12-09 13:27:48
您应该返回AuthModule,因为这是组件的名称。
虽然我猜想您在那里输入了一些名称,但是您可能想要调用该组件AppComponent。(调用名称以-module结尾的组件是非常令人费解的)
https://stackoverflow.com/questions/59245879
复制相似问题