Я использую в своем проекте библиотеку Koin di. Версия библиотеки: 1.0.0-RC-1.
Мой модуль:
val appModule = module {
scope("UserScope") { UserToaster(androidContext()) as Toaster }
scope("AnonScope") { AnonToaster(androidContext()) as Toaster }
}
Я запустил коин в своем классе Application и создал область:
override fun onCreate() {
super.onCreate()
startKoin(this, listOf(appModule))
getKoin().getOrCreateScope("AnonScope")
}
Затем я попытался внедрить реализацию Toaster из текущей области видимости в переменную Activity. Вот код:
private val toaster: Toaster by inject(scope = "AnonScope")
После этого у меня появилась ошибка:
Caused by: org.koin.error.DependencyResolutionException: Multiple definitions found for type 'interface com.example.nkirilov.playground.Toaster (Kotlin reflection is not available)' - Koin can't choose between :
Scope [name='UserScope',class='com.example.nkirilov.playground.Toaster']
Scope [name='AnonScope',class='com.example.nkirilov.playground.Toaster']
Check your modules definition, use inner modules visibility or definition names.
Не понимаю, почему это не работает (если использовать single с разными именами - сработает). Это ошибка коина? Как избежать этой ошибки?