我有一个多模块项目,并且在设置Koin DI时遇到一些奇怪的问题。我的项目有以下模块:app
,library
。
我已经在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>()
...
}
关于上述代码有什么问题的任何想法?