Kotlin Dagger 2不能提供交互器
我已经开始使用匕首2,并面临奇怪的问题。 我有4个模块,其中3个在ApplicationComponent中,另一个有不同的Scope(UsersScope)。
将UsersInteractor
注入UsersInteractor
UsersPresenter
错误:[BlankFragment]] com.interactors.UsersInteractor不能提供没有@Inject构造函数或从@提供注释的方法。
这是我的课程
@Singleton @Component(modules = arrayOf(ApplicationModule::class, NetworkModule::class, DbModule::class)) interface ApplicationComponent { fun plusUsersComponent(usersModule: UsersModule): UsersComponent } @Module class ApplicationModule(private val context: Context) { @Provides @Singleton fun provideContext(): Context = context } @Subcomponent(modules = arrayOf(UsersModule::class)) @UsersScope interface UsersComponent { fun inject(blankFragment: BlankFragment) } @Module class UsersModule { @Provides @UsersScope fun provideUsersRepository(restService: RestService, dbService: DbService): IUsersRepository = UsersRepository(restService, dbService) @Provides @UsersScope fun provideUsersInteractor(usersRepository: UsersRepository): IUsersInteractor = UsersInteractor(usersRepository) @Provides @UsersScope fun provideUsersPresenter(usersInteractor: UsersInteractor): IUsersPresenter = UsersPresenter(usersInteractor) } @Scope @Retention(AnnotationRetention.RUNTIME) annotation class UsersScope
由于您只提供IUsersInteractor
因此没有UsersInteractor
已知的IUsersInteractor
。
切换您的演示者提供者方法使用IUsersInteractor
它应该工作
fun provideUsersPresenter(usersInteractor: IUsersInteractor)
- 从Activity 中调用Fragments演示者的方法
- 匕首2在Kotlin未解决的参考DaggerXXXSub
- 新的建筑与匕首和Kotlin
- 在混合Java / Kotlin项目中使用Dagger 2的Maven配置
- 错误:未找到注释处理器'__gen.AnnotationProcessorWrapper_debug_android_databinding_annotationprocessor_ProcessDataBinding'
- Retrofit 2.0如何获得反序列化的错误response.body
- MVP演示者没有正确注入
- 使用kapt时,Dagger跳过Google服务模块的工厂代码
- 错误:com.app.android.dagger.component.AppComponent(unscoped)可能不引用作用域绑定: