Android Koin简单对象注入失败

Android Koin简单对象注入失败,android,kotlin,koin,Android,Kotlin,Koin,我正在尝试学习Koin在android中的依赖注入。我开始遵循这个示例,并尝试通过注入非常简单的对象,但我得到的错误是nobeandefoundexception:No defind for… 这是我的密码 Gradle // Koin def koin_version = '2.0.1' implementation "org.koin:koin-androidx-scope:$koin_version" implementation "org.koin:koin-an

我正在尝试学习Koin在android中的依赖注入。我开始遵循这个示例,并尝试通过注入非常简单的对象,但我得到的错误是
nobeandefoundexception:No defind for…

这是我的密码

Gradle

// Koin
    def koin_version = '2.0.1'
    implementation "org.koin:koin-androidx-scope:$koin_version"
    implementation "org.koin:koin-androidx-viewmodel:$koin_version"
    implementation "org.koin:koin-androidx-ext:$koin_version" 
override fun onCreate() {
        super.onCreate()

        startKoin{
            androidLogger()
            androidContext(this@Application)
            listOf(applicationModule)
        }

    }
应用程序onCreate()

模块.kt

val applicationModule = module {
    factory { UserSession("email","password") }
}

但是,当我尝试将它作为
private val userSession:userSession by inject()
插入任何地方(应用程序、活动、片段)时,我得到了上述错误。我遗漏了什么吗?

您可能被语法弄糊涂了,您应该调用方法
modules
,并为它提供您想要启动的模块

listOf
返回值在您的情况下被忽略,您应该这样做:

startKoin {
    androidLogger()
    androidContext(this@Application)
    modules(applicationModule)
}
试试这个

KoinApp.kt

class KoinApp : MultiDexApplication() {
    override fun onCreate() {
        super.onCreate()
        startKoin(this, listOf(appModule))
    }
}
appModule.kt

@JvmField
    val appModule = module {
         single { DataRepository(get()) } 
    }

答案会有用的,但为了将来的证明,我仍然会有一份清单

startKoin {
androidLogger()
androidContext(this@Application)
modules(listOf(applicationModule))
}