2

I'm having an issue related to the use of Koin DI together with Room DB. I created all the needed components for Room as follows:

@Dao
interface CharacterDAO {
    @Query("SELECT * FROM character")
    suspend fun getAll(): List<CharacterEntity>

    @Query("SELECT * FROM character WHERE uid IN (:characterIds)")
    suspend fun loadAllByIds(characterIds: IntArray): List<CharacterEntity>

    @Query("SELECT * FROM character WHERE name LIKE :first")
    suspend fun findByName(first: String): CharacterEntity

    @Insert(onConflict = OnConflictStrategy.REPLACE)
    suspend fun insertAll(vararg characters: List<CharacterEntity>)

    suspend fun insert(character: CharacterEntity): Boolean

    @Delete
    suspend fun delete(character: CharacterEntity)

    @Query("DELETE FROM character")
    suspend fun clearTable()
}

@Database(entities = [CharacterEntity::class], version = 1, exportSchema = false) // entities = [Character::class]
abstract class AppDatabase : RoomDatabase() {
    abstract fun characterDao(): CharacterDAO
}

@Entity(tableName = "character")
data class CharacterEntity(
    @PrimaryKey val id: String,
    val name: String,
    val actor: String,
    val alive: Boolean,
    val ancestry: String,
    val dateOfBirth: String,
    val eyeColour: String,
    val gender: String,
    val hairColour: String,
    val hogwartsStaff: Boolean,
    val hogwartsStudent: Boolean,
    val house: String,
    val image: String,
    val patronus: String,
    val species: String,
    val wizard: Boolean,
    val yearOfBirth: Int
)

Imported the following dependencies in the app gradle file:

// Room
implementation "androidx.room:room-runtime:2.5.1"
implementation 'androidx.room:room-ktx:2.5.1'
kapt 'android.arch.persistence.room:compiler:1.1.1'

// Koin for Android
implementation 'io.insert-koin:koin-android:3.4.0'

And defined the following Koin modules:

val appModule = module {

    single {
        WizardsSharedPreferences(get())
    }

    single<WizardRepository> {
        WizardRepositoryImpl(wizardNetwork = get(), wizardCache = get(), sharedPreferences = get())
    }

    viewModel { HomeViewModel(wizardRepository = get()) }
    viewModel { DetailViewModel(wizardRepository = get()) }

}

val networkingKoinModule = module {

    single<AppDatabase> {
        Room.databaseBuilder(
            androidApplication(),
            AppDatabase::class.java,
            "wizards"
        ).build()
    }

    single<CharacterDAO> {
        val database = get<AppDatabase>()
        database.characterDao()
    }

    single<WizardNetworkDataAPI> {
        WizardNetworkDataApiImpl()
    }

    single<WizardCacheDataAPI> {
        WizardCacheDataApiImpl(get())
    }
}

Sync and compilation goes well. At Runtime in logcat I receive the following error:

2023-03-30 09:17:55.221 29345-29345/com.santog.wizards E/[Koin]: * Instance creation error : could not create instance for '[Singleton:'com.santog.wizards.data.cache.dao.AppDatabase']': java.lang.RuntimeException: Cannot find implementation for com.santog.wizards.data.cache.dao.AppDatabase. AppDatabase_Impl does not exist
        androidx.room.Room.getGeneratedImplementation(Room.kt:58)
        androidx.room.RoomDatabase$Builder.build(RoomDatabase.kt:1356)
        com.santog.wizards.di.NetworkingKoinModuleKt$networkingKoinModule$1$1.invoke(NetworkingKoinModule.kt:23)
        com.santog.wizards.di.NetworkingKoinModuleKt$networkingKoinModule$1$1.invoke(NetworkingKoinModule.kt:18)
        org.koin.core.instance.InstanceFactory.create(InstanceFactory.kt:51)
        org.koin.core.instance.SingleInstanceFactory.create(SingleInstanceFactory.kt:46)
        org.koin.core.instance.SingleInstanceFactory$get$1.invoke(SingleInstanceFactory.kt:53)
        org.koin.core.instance.SingleInstanceFactory$get$1.invoke(SingleInstanceFactory.kt:51)
        org.koin.mp.KoinPlatformTools.synchronized(KoinPlatformTools.kt:20)
        org.koin.core.instance.SingleInstanceFactory.get(SingleInstanceFactory.kt:51)
        org.koin.core.registry.InstanceRegistry.resolveInstance$koin_core(InstanceRegistry.kt:116)
        org.koin.core.scope.Scope.resolveValue(Scope.kt:246)
        org.koin.core.scope.Scope.resolveInstance(Scope.kt:231)
        org.koin.core.scope.Scope.get(Scope.kt:210)
        com.santog.wizards.di.NetworkingKoinModuleKt$networkingKoinModule$1$4.invoke(NetworkingKoinModule.kt:49)
        com.santog.wizards.di.NetworkingKoinModuleKt$networkingKoinModule$1$4.invoke(NetworkingKoinModule.kt:35)
        org.koin.core.instance.InstanceFactory.create(InstanceFactory.kt:51)
        org.koin.core.instance.SingleInstanceFactory.create(SingleInstanceFactory.kt:46)
        org.koin.core.instance.SingleInstanceFactory$get$1.invoke(SingleInstanceFactory.kt:53)
        org.koin.core.instance.SingleInstanceFactory$get$1.invoke(SingleInstanceFactory.kt:51)
        org.koin.mp.KoinPlatformTools.synchronized(KoinPlatformTools.kt:20)
        org.koin.core.instance.SingleInstanceFactory.get(SingleInstanceFactory.kt:51)
        org.koin.core.registry.InstanceRegistry.resolveInstance$koin_core(InstanceRegistry.kt:116)
        org.koin.core.scope.Scope.resolveValue(Scope.kt:246)
        org.koin.core.scope.Scope.resolveInstance(Scope.kt:231)
        org.koin.core.scope.Scope.get(Scope.kt:210)
        com.santog.wizards.di.AppKoinModuleKt$appModule$1$2.invoke(AppKoinModule.kt:33)
        com.santog.wizards.di.AppKoinModuleKt$appModule$1$2.invoke(AppKoinModule.kt:20)
        org.koin.core.instance.InstanceFactory.create(InstanceFactory.kt:51)
        org.koin.core.instance.SingleInstanceFactory.create(SingleInstanceFactory.kt:46)
        org.koin.core.instance.SingleInstanceFactory$get$1.invoke(SingleInstanceFactory.kt:53)
        org.koin.core.instance.SingleInstanceFactory$get$1.invoke(SingleInstanceFactory.kt:51)
        org.koin.mp.KoinPlatformTools.synchronized(KoinPlatformTools.kt:20)
        org.koin.core.instance.SingleInstanceFactory.get(SingleInstanceFactory.kt:51)
        org.koin.core.registry.InstanceRegistry.resolveInstance$koin_core(InstanceRegistry.kt:116)
        org.koin.core.scope.Scope.resolveValue(Scope.kt:246)
        org.koin.core.scope.Scope.resolveInstance(Scope.kt:231)
        org.koin.core.scope.Scope.get(Scope.kt:210)
        com.santog.wizards.di.AppKoinModuleKt$appModule$1$3.invoke(AppKoinModule.kt:33)
        com.santog.wizards.di.AppKoinModuleKt$appModule$1$3.invoke(AppKoinModule.kt:24)
        org.koin.core.instance.InstanceFactory.create(InstanceFactory.kt:51)
        org.koin.core.instance.FactoryInstanceFactory.get(FactoryInstanceFactory.kt:38)
        org.koin.core.registry.InstanceRegistry.resolveInstance$koin_core(InstanceRegistry.kt:116)
        org.koin.core.scope.Scope.resolveValue(Scope.kt:246)
        org.koin.core.scope.Scope.resolveInstance(Scope.kt:231)
        org.koin.core.scope.Scope.get(Scope.kt:210)
        org.koin.androidx.viewmodel.factory.KoinViewModelFactory.create(KoinViewModelFactory.kt:25)
        androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.kt:187)
        androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.kt:153)
        org.koin.androidx.viewmodel.GetViewModelKt.resolveViewModel(GetViewModel.kt:44)
2023-03-30 09:17:55.221 29345-29345/com.santog.wizards E/[Koin]:    org.koin.androidx.viewmodel.GetViewModelKt.resolveViewModel$default(GetViewModel.kt:29)
        com.santog.wizards.presentation.view.staff.StaffFragment$special$$inlined$viewModel$default$2.invoke(FragmentVM.kt:83)
        com.santog.wizards.presentation.view.staff.StaffFragment$special$$inlined$viewModel$default$2.invoke(FragmentVM.kt:49)
        kotlin.UnsafeLazyImpl.getValue(Lazy.kt:81)
        com.santog.wizards.presentation.view.staff.StaffFragment.getViewModel(StaffFragment.kt:30)
        com.santog.wizards.presentation.view.staff.StaffFragment.onViewCreated(StaffFragment.kt:49)
        androidx.fragment.app.Fragment.performViewCreated(Fragment.java:3128)
        androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:552)
        androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:261)
        androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1899)
        androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1823)
        androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1760)
        androidx.fragment.app.FragmentManager$5.run(FragmentManager.java:547)
        android.os.Handler.handleCallback(Handler.java:938)
        android.os.Handler.dispatchMessage(Handler.java:99)
        android.os.Looper.loopOnce(Looper.java:201)
        android.os.Looper.loop(Looper.java:288)
        android.app.ActivityThread.main(ActivityThread.java:7839)
        java.lang.reflect.Method.invoke(Native Method)
        com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
        com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
2023-03-30 09:17:55.221 29345-29345/com.santog.wizards E/[Koin]: * Instance creation error : could not create instance for '[Singleton:'com.santog.wizards.data.cache.WizardCacheDataAPI']': org.koin.core.error.InstanceCreationException: Could not create instance for '[Singleton:'com.santog.wizards.data.cache.dao.AppDatabase']'
        org.koin.core.instance.InstanceFactory.create(InstanceFactory.kt:58)
        org.koin.core.instance.SingleInstanceFactory.create(SingleInstanceFactory.kt:46)
        org.koin.core.instance.SingleInstanceFactory$get$1.invoke(SingleInstanceFactory.kt:53)
        org.koin.core.instance.SingleInstanceFactory$get$1.invoke(SingleInstanceFactory.kt:51)
        org.koin.mp.KoinPlatformTools.synchronized(KoinPlatformTools.kt:20)
        org.koin.core.instance.SingleInstanceFactory.get(SingleInstanceFactory.kt:51)
        org.koin.core.registry.InstanceRegistry.resolveInstance$koin_core(InstanceRegistry.kt:116)
        org.koin.core.scope.Scope.resolveValue(Scope.kt:246)
        org.koin.core.scope.Scope.resolveInstance(Scope.kt:231)
        org.koin.core.scope.Scope.get(Scope.kt:210)
        com.santog.wizards.di.NetworkingKoinModuleKt$networkingKoinModule$1$4.invoke(NetworkingKoinModule.kt:49)
        com.santog.wizards.di.NetworkingKoinModuleKt$networkingKoinModule$1$4.invoke(NetworkingKoinModule.kt:35)
        org.koin.core.instance.InstanceFactory.create(InstanceFactory.kt:51)
        org.koin.core.instance.SingleInstanceFactory.create(SingleInstanceFactory.kt:46)
        org.koin.core.instance.SingleInstanceFactory$get$1.invoke(SingleInstanceFactory.kt:53)
        org.koin.core.instance.SingleInstanceFactory$get$1.invoke(SingleInstanceFactory.kt:51)
        org.koin.mp.KoinPlatformTools.synchronized(KoinPlatformTools.kt:20)
        org.koin.core.instance.SingleInstanceFactory.get(SingleInstanceFactory.kt:51)
        org.koin.core.registry.InstanceRegistry.resolveInstance$koin_core(InstanceRegistry.kt:116)
        org.koin.core.scope.Scope.resolveValue(Scope.kt:246)
        org.koin.core.scope.Scope.resolveInstance(Scope.kt:231)
        org.koin.core.scope.Scope.get(Scope.kt:210)
        com.santog.wizards.di.AppKoinModuleKt$appModule$1$2.invoke(AppKoinModule.kt:33)
        com.santog.wizards.di.AppKoinModuleKt$appModule$1$2.invoke(AppKoinModule.kt:20)
        org.koin.core.instance.InstanceFactory.create(InstanceFactory.kt:51)
        org.koin.core.instance.SingleInstanceFactory.create(SingleInstanceFactory.kt:46)
        org.koin.core.instance.SingleInstanceFactory$get$1.invoke(SingleInstanceFactory.kt:53)
        org.koin.core.instance.SingleInstanceFactory$get$1.invoke(SingleInstanceFactory.kt:51)
        org.koin.mp.KoinPlatformTools.synchronized(KoinPlatformTools.kt:20)
        org.koin.core.instance.SingleInstanceFactory.get(SingleInstanceFactory.kt:51)
        org.koin.core.registry.InstanceRegistry.resolveInstance$koin_core(InstanceRegistry.kt:116)
        org.koin.core.scope.Scope.resolveValue(Scope.kt:246)
        org.koin.core.scope.Scope.resolveInstance(Scope.kt:231)
        org.koin.core.scope.Scope.get(Scope.kt:210)
        com.santog.wizards.di.AppKoinModuleKt$appModule$1$3.invoke(AppKoinModule.kt:33)
        com.santog.wizards.di.AppKoinModuleKt$appModule$1$3.invoke(AppKoinModule.kt:24)
        org.koin.core.instance.InstanceFactory.create(InstanceFactory.kt:51)
        org.koin.core.instance.FactoryInstanceFactory.get(FactoryInstanceFactory.kt:38)
        org.koin.core.registry.InstanceRegistry.resolveInstance$koin_core(InstanceRegistry.kt:116)
        org.koin.core.scope.Scope.resolveValue(Scope.kt:246)
        org.koin.core.scope.Scope.resolveInstance(Scope.kt:231)
        org.koin.core.scope.Scope.get(Scope.kt:210)
        org.koin.androidx.viewmodel.factory.KoinViewModelFactory.create(KoinViewModelFactory.kt:25)
        androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.kt:187)
        androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.kt:153)
        org.koin.androidx.viewmodel.GetViewModelKt.resolveViewModel(GetViewModel.kt:44)
        org.koin.androidx.viewmodel.GetViewModelKt.resolveViewModel$default(GetViewModel.kt:29)
        com.santog.wizards.presentation.view.staff.StaffFragment$special$$inlined$viewModel$default$2.invoke(FragmentVM.kt:83)
        com.santog.wizards.presentation.view.staff.StaffFragment$special$$inlined$viewModel$default$2.invoke(FragmentVM.kt:49)
2023-03-30 09:17:55.222 29345-29345/com.santog.wizards E/[Koin]:    kotlin.UnsafeLazyImpl.getValue(Lazy.kt:81)
        com.santog.wizards.presentation.view.staff.StaffFragment.getViewModel(StaffFragment.kt:30)
        com.santog.wizards.presentation.view.staff.StaffFragment.onViewCreated(StaffFragment.kt:49)
        androidx.fragment.app.Fragment.performViewCreated(Fragment.java:3128)
        androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:552)
        androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:261)
        androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1899)
        androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1823)
        androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1760)
        androidx.fragment.app.FragmentManager$5.run(FragmentManager.java:547)
        android.os.Handler.handleCallback(Handler.java:938)
        android.os.Handler.dispatchMessage(Handler.java:99)
        android.os.Looper.loopOnce(Looper.java:201)
        android.os.Looper.loop(Looper.java:288)
        android.app.ActivityThread.main(ActivityThread.java:7839)
        java.lang.reflect.Method.invoke(Native Method)
        com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
        com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
2023-03-30 09:17:55.222 29345-29345/com.santog.wizards E/[Koin]: * Instance creation error : could not create instance for '[Singleton:'com.santog.wizards.domain.WizardRepository']': org.koin.core.error.InstanceCreationException: Could not create instance for '[Singleton:'com.santog.wizards.data.cache.WizardCacheDataAPI']'
        org.koin.core.instance.InstanceFactory.create(InstanceFactory.kt:58)
        org.koin.core.instance.SingleInstanceFactory.create(SingleInstanceFactory.kt:46)
        org.koin.core.instance.SingleInstanceFactory$get$1.invoke(SingleInstanceFactory.kt:53)
        org.koin.core.instance.SingleInstanceFactory$get$1.invoke(SingleInstanceFactory.kt:51)
        org.koin.mp.KoinPlatformTools.synchronized(KoinPlatformTools.kt:20)
        org.koin.core.instance.SingleInstanceFactory.get(SingleInstanceFactory.kt:51)
        org.koin.core.registry.InstanceRegistry.resolveInstance$koin_core(InstanceRegistry.kt:116)
        org.koin.core.scope.Scope.resolveValue(Scope.kt:246)
        org.koin.core.scope.Scope.resolveInstance(Scope.kt:231)
        org.koin.core.scope.Scope.get(Scope.kt:210)
        com.santog.wizards.di.AppKoinModuleKt$appModule$1$2.invoke(AppKoinModule.kt:33)
        com.santog.wizards.di.AppKoinModuleKt$appModule$1$2.invoke(AppKoinModule.kt:20)
        org.koin.core.instance.InstanceFactory.create(InstanceFactory.kt:51)
        org.koin.core.instance.SingleInstanceFactory.create(SingleInstanceFactory.kt:46)
        org.koin.core.instance.SingleInstanceFactory$get$1.invoke(SingleInstanceFactory.kt:53)
        org.koin.core.instance.SingleInstanceFactory$get$1.invoke(SingleInstanceFactory.kt:51)
        org.koin.mp.KoinPlatformTools.synchronized(KoinPlatformTools.kt:20)
        org.koin.core.instance.SingleInstanceFactory.get(SingleInstanceFactory.kt:51)
        org.koin.core.registry.InstanceRegistry.resolveInstance$koin_core(InstanceRegistry.kt:116)
        org.koin.core.scope.Scope.resolveValue(Scope.kt:246)
        org.koin.core.scope.Scope.resolveInstance(Scope.kt:231)
        org.koin.core.scope.Scope.get(Scope.kt:210)
        com.santog.wizards.di.AppKoinModuleKt$appModule$1$3.invoke(AppKoinModule.kt:33)
        com.santog.wizards.di.AppKoinModuleKt$appModule$1$3.invoke(AppKoinModule.kt:24)
        org.koin.core.instance.InstanceFactory.create(InstanceFactory.kt:51)
        org.koin.core.instance.FactoryInstanceFactory.get(FactoryInstanceFactory.kt:38)
        org.koin.core.registry.InstanceRegistry.resolveInstance$koin_core(InstanceRegistry.kt:116)
        org.koin.core.scope.Scope.resolveValue(Scope.kt:246)
        org.koin.core.scope.Scope.resolveInstance(Scope.kt:231)
        org.koin.core.scope.Scope.get(Scope.kt:210)
        org.koin.androidx.viewmodel.factory.KoinViewModelFactory.create(KoinViewModelFactory.kt:25)
        androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.kt:187)
        androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.kt:153)
        org.koin.androidx.viewmodel.GetViewModelKt.resolveViewModel(GetViewModel.kt:44)
        org.koin.androidx.viewmodel.GetViewModelKt.resolveViewModel$default(GetViewModel.kt:29)
        com.santog.wizards.presentation.view.staff.StaffFragment$special$$inlined$viewModel$default$2.invoke(FragmentVM.kt:83)
        com.santog.wizards.presentation.view.staff.StaffFragment$special$$inlined$viewModel$default$2.invoke(FragmentVM.kt:49)
        kotlin.UnsafeLazyImpl.getValue(Lazy.kt:81)
        com.santog.wizards.presentation.view.staff.StaffFragment.getViewModel(StaffFragment.kt:30)
        com.santog.wizards.presentation.view.staff.StaffFragment.onViewCreated(StaffFragment.kt:49)
        androidx.fragment.app.Fragment.performViewCreated(Fragment.java:3128)
        androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:552)
        androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:261)
        androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1899)
        androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1823)
        androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1760)
        androidx.fragment.app.FragmentManager$5.run(FragmentManager.java:547)
        android.os.Handler.handleCallback(Handler.java:938)
        android.os.Handler.dispatchMessage(Handler.java:99)
2023-03-30 09:17:55.222 29345-29345/com.santog.wizards E/[Koin]:    android.os.Looper.loopOnce(Looper.java:201)
        android.os.Looper.loop(Looper.java:288)
        android.app.ActivityThread.main(ActivityThread.java:7839)
        java.lang.reflect.Method.invoke(Native Method)
        com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
        com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
2023-03-30 09:17:55.223 29345-29345/com.santog.wizards E/[Koin]: * Instance creation error : could not create instance for '[Factory:'com.santog.wizards.presentation.viewmodel.HomeViewModel']': org.koin.core.error.InstanceCreationException: Could not create instance for '[Singleton:'com.santog.wizards.domain.WizardRepository']'
        org.koin.core.instance.InstanceFactory.create(InstanceFactory.kt:58)
        org.koin.core.instance.SingleInstanceFactory.create(SingleInstanceFactory.kt:46)
        org.koin.core.instance.SingleInstanceFactory$get$1.invoke(SingleInstanceFactory.kt:53)
        org.koin.core.instance.SingleInstanceFactory$get$1.invoke(SingleInstanceFactory.kt:51)
        org.koin.mp.KoinPlatformTools.synchronized(KoinPlatformTools.kt:20)
        org.koin.core.instance.SingleInstanceFactory.get(SingleInstanceFactory.kt:51)
        org.koin.core.registry.InstanceRegistry.resolveInstance$koin_core(InstanceRegistry.kt:116)
        org.koin.core.scope.Scope.resolveValue(Scope.kt:246)
        org.koin.core.scope.Scope.resolveInstance(Scope.kt:231)
        org.koin.core.scope.Scope.get(Scope.kt:210)
        com.santog.wizards.di.AppKoinModuleKt$appModule$1$3.invoke(AppKoinModule.kt:33)
        com.santog.wizards.di.AppKoinModuleKt$appModule$1$3.invoke(AppKoinModule.kt:24)
        org.koin.core.instance.InstanceFactory.create(InstanceFactory.kt:51)
        org.koin.core.instance.FactoryInstanceFactory.get(FactoryInstanceFactory.kt:38)
        org.koin.core.registry.InstanceRegistry.resolveInstance$koin_core(InstanceRegistry.kt:116)
        org.koin.core.scope.Scope.resolveValue(Scope.kt:246)
        org.koin.core.scope.Scope.resolveInstance(Scope.kt:231)
        org.koin.core.scope.Scope.get(Scope.kt:210)
        org.koin.androidx.viewmodel.factory.KoinViewModelFactory.create(KoinViewModelFactory.kt:25)
        androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.kt:187)
        androidx.lifecycle.ViewModelProvider.get(ViewModelProvider.kt:153)
        org.koin.androidx.viewmodel.GetViewModelKt.resolveViewModel(GetViewModel.kt:44)
        org.koin.androidx.viewmodel.GetViewModelKt.resolveViewModel$default(GetViewModel.kt:29)
        com.santog.wizards.presentation.view.staff.StaffFragment$special$$inlined$viewModel$default$2.invoke(FragmentVM.kt:83)
        com.santog.wizards.presentation.view.staff.StaffFragment$special$$inlined$viewModel$default$2.invoke(FragmentVM.kt:49)
        kotlin.UnsafeLazyImpl.getValue(Lazy.kt:81)
        com.santog.wizards.presentation.view.staff.StaffFragment.getViewModel(StaffFragment.kt:30)
        com.santog.wizards.presentation.view.staff.StaffFragment.onViewCreated(StaffFragment.kt:49)
        androidx.fragment.app.Fragment.performViewCreated(Fragment.java:3128)
        androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:552)
        androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:261)
        androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1899)
        androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1823)
        androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1760)
        androidx.fragment.app.FragmentManager$5.run(FragmentManager.java:547)
        android.os.Handler.handleCallback(Handler.java:938)
        android.os.Handler.dispatchMessage(Handler.java:99)
        android.os.Looper.loopOnce(Looper.java:201)
        android.os.Looper.loop(Looper.java:288)
        android.app.ActivityThread.main(ActivityThread.java:7839)
        java.lang.reflect.Method.invoke(Native Method)
        com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
        com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)

I already tried to add/remove some dependencies, invalidating cache and restart and clean build.

I also tried to avoid injecting singleton with Koin, implementing the getInstance of AppDatabase inside the abstract class as follows:

companion object {
        @Volatile
        private var INSTANCE: AppDatabase? = null

        fun getInstance(context: Context): AppDatabase {
            synchronized(this) {
                var instance = INSTANCE
                if (instance == null) {
                    instance = Room
                        .databaseBuilder(
                            context.applicationContext,
                            AppDatabase::class.java,
                            "wizards"
                        ).fallbackToDestructiveMigration()
                        .build()
                    INSTANCE = instance
                }
                return instance
            }

        }

    }

But I still get that error. What I'm doing wrong ?

Santo
  • 61
  • 4

0 Answers0