首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kotlin Dagger 2不能提供交互

Kotlin Dagger 2不能提供交互
EN

Stack Overflow用户
提问于 2017-05-23 12:52:42
回答 1查看 214关注 0票数 0

我已经开始使用匕首2,并面临着奇怪的问题。我有4个模块,其中3个在ApplicationComponent中,另一个有不同的作用域(UsersScope)。

UsersInteractor中注入UsersPresenter的问题

错误:如果没有@Inject构造函数或@Provides注释的方法,就不能提供com.interactors.UsersInteractor。

这是我的课

代码语言:javascript
复制
@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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-23 13:05:35

Dagger不知道UsersInteractor,因为您只提供IUsersInteractor

将演示者提供程序方法转换为使用IUsersInteractor,它应该可以工作

代码语言:javascript
复制
fun provideUsersPresenter(usersInteractor: IUsersInteractor)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44135430

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档