在多模块Android项目中使用Koin

时间:2019-10-24 10:49:19

标签: android dependency-injection koin

我有一个多模块项目,并且在设置Koin DI时遇到一些奇怪的问题。我的项目有以下模块:applibrary

我已经在library模块中声明了一个接口,并在app模块中声明了其相应的实现,并且我想在库中使用相同的接口。该代码看起来像:

库模块:

interface Storage {
    fun setUser(user: User)
    fun getUser(): User
}

应用程序模块:

class MyApplication : Application() {

    override fun onCreate() {
        super.onCreate()
        startKoin(this, listOf(appModule))
} 


val appModule = module {
    single<Storage> { AppStorage(androidApplication()) }
}

现在,当我尝试将Storage注入库模块时,我得到NoBeanDefFoundException。下面是相同的代码:

class LibActivity {

    private val storage by inject<Storage>()
    ...
}

关于上述代码有什么问题的任何想法?

0 个答案:

没有答案