Я следовал официальному документу Koin, но всякий раз, когда я запускаю свое приложение, оно вылетает. Мой проект состоит из нескольких модулей, но все мои инъекции используются в одном модуле.
Определение моего модуля Koin:
Код: Выделить всё
val databaseModule = module {
factory { provideIoDispatcher() }
single { provideHerowDatabase(get()) }
single { provideZoneDAO(get()) }
single { providePoiDAO(get()) }
single { provideCampaignDAO(get()) }
single { provideZoneRepository(get()) }
single { providePoiRepository(get()) }
single { provideCampaignRepository(get()) }
}
private fun provideIoDispatcher(): CoroutineDispatcher = Dispatchers.IO
/** and so on **/
Код: Выделить всё
class DetectionApplication : Application(), Configuration.Provider {
override fun getWorkManagerConfiguration(): Configuration = Configuration.Builder()
.setMinimumLoggingLevel(android.util.Log.INFO)
.build()
override fun onCreate() {
super.onCreate()
startKoin {
androidLogger()
androidContext(this@DetectionApplication)
modules(listOf(databaseModule))
}
}
}
Код: Выделить всё
android:name="androidx.work.impl.WorkManagerInitializer"
android:authorities="${applicationId}.workmanager-init"
tools:node="merge" />
Код: Выделить всё
class HerowInitializer private constructor(val context: Context) : KoinComponent {
//Koin
private val ioDispatcher: CoroutineDispatcher by inject()
init {
loadIdentifiers(context)
}
private fun loadIdentifiers(context: Context) {
CoroutineScope(ioDispatcher).launch {
/** code **/
}
}

Подробнее здесь: https://stackoverflow.com/questions/685 ... es-project
Мобильная версия