LoginSignup
4
3

More than 3 years have passed since last update.

Koinを使っているプロジェクトが"A Koin Application has already been started"というエラーが出るときの対処法

Posted at

この記事の対象は同じエラーに嵌った人です。
なので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()すれば良いんじゃないですかね。

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3