Home:ALL Converter>Android Koin NoBeanDefFoundException only in release version of app

Android Koin NoBeanDefFoundException only in release version of app

Ask Time:2019-03-18T21:13:02         Author:BekaBot

Json Formatter

In Debug version it is working fine, but fails on Release version. I guess it is related to Proguard rules.

// Koin
implementation 'org.koin:koin-android:1.0.2'
implementation 'org.koin:koin-android-viewmodel:1.0.2'

Modules:

val appModule = module {
    viewModel<IntroVM>()
}


val dataModule = module {
    single { NetworkManager(androidContext().applicationContext) }
    single { LocalFileManager(androidContext().applicationContext) }
    single { ApiModel(get()) }

Class definitions:

class ApiModel(val networkManager: NetworkManager){}

class LocalFileManager(private var appContext: Context) {}

class NetworkManager(private var appContext: Context) {}

class IntroVM(var apiModel: ApiModel) : CommonVM() {

Koin init:

startKoin(this, listOf(appModule, dataModule))

Proguard rules:

-keepattributes *Annotation*
-keepattributes SourceFile,LineNumberTable
-keep public class * extends java.lang.Exception
-keepclassmembernames class kotlinx.** {
    volatile <fields>;
}

StackTrace:

Error while resolving instance for class 'com...viewModels.auth.b' -      
error: org.koin.error.BeanInstanceCreationException:
Can't create definition for 'Factory [name='b',class='com..viewModels.auth.b', binds~(androidx.lifecycle.r)]' due to error :'binds~(androidx.lifecycle.r)]
No constructor found for class 'class com...viewModels.auth.b'

Author:BekaBot,eproduced under the CC 4.0 BY-SA copyright license with a link to the original source and this disclaimer.
Link to original article:https://stackoverflow.com/questions/55222234/android-koin-nobeandeffoundexception-only-in-release-version-of-app
Shweta Chauhan :

\n As you are using androidX\n Use below library of viewmodel for koin \n\n\nimplementation 'org.koin:koin-androidx-viewmodel:1.0.2'\n",
2019-03-18T13:19:12
yy