java.lang.IllegalStateException: KoinApplication 尚未启动

Posted

技术标签:

【中文标题】java.lang.IllegalStateException: KoinApplication 尚未启动【英文标题】:java.lang.IllegalStateException: KoinApplication has not been started 【发布时间】:2020-04-28 16:02:07 【问题描述】:

我正在使用 koin 学习 kotlin。在 catlog 中运行应用程序时,我看到以下消息。

虽然我在 MyApplication 中使用过 startKoin

class MyApplication : Application() 

    var listOfModules = module 
        single  GitHubServiceApi() 
    

    override fun onCreate() 
        super.onCreate()

        startKoin 
            androidLogger()
            androidContext(this@MyApplication)
            modules(listOfModules)
        

    

 

我发现了我做错的问题。我想在 mainfest.xml 中添加 MyApplcation 名称

【问题讨论】:

找到我做错的地方。谢谢大家 你的新错误是什么?请详细解释一下 我只有一个设备有这个问题? c 我只在我的 Galaxy s10 上遇到这个问题:l 【参考方案1】:

在 Manifest 文件中添加 "android:name=".TheApplication" 解决了这个问题。

    android:name=".TheApplication"
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_app_icon_round"
    android:supportsRtl="true"
    android:theme="@style/Theme.Shrine">
    <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

"android:name=".TheApplication" 是来自 Koin 的类名

class TheApplication : Application() 

    override fun onCreate() 
        super.onCreate()

        if (BuildConfig.DEBUG) 
            Timber.plant(Timber.DebugTree())
        

        startKoin 
            androidLogger()
            androidContext(androidContext = this@TheApplication)

            modules(
                listOfModules
            )
        
    

【讨论】:

【参考方案2】:

基本上,您需要在 Manifest 中将调用 startKoin() 方法的类的名称作为应用程序名称。这将让您配置日志记录、属性加载和模块。看看这个:https://doc.insert-koin.io/#/koin-core/dsl

【讨论】:

以上是关于java.lang.IllegalStateException: KoinApplication 尚未启动的主要内容,如果未能解决你的问题,请参考以下文章