この記事の対象は同じエラーに嵌った人です。
なのでKoinの説明は省きます。
Koinをよく分からずに使っているとこんなエラーが出ませんでした?
org.koin.core.error.KoinAppAlreadyStartedException: A Koin Application has already been started
出てないならこの記事はあなたには不要でしょう。
これの対処法です。
まず、原因ですが、startKoin()
を複数回呼び出していることです。
どうやらKoinApplicationの存在しているインスタンスは単一である必要があるらしいです。
なので、startKoin()
の部分を以下のように書き換えます。
GlobalContext.getOrNull() ?: startKoin {
// Do Something
}
やってることは単純です。
KoinApplicationが存在しなければ新規作成、しないのなら使いまわしです。
使用するmoduleなんかを変えたいのなら、stopKoin()
を使ってからstartKoin()
すれば良いんじゃないですかね。