簡體   English   中英

Android Koin NoBeanDefFoundException僅在應用的發行版中

[英]Android Koin NoBeanDefFoundException only in release version of app

在Debug版本中,它可以正常工作,但在Release版本上則失敗。 我想這與Proguard規則有關。

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

模塊:

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


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

類定義:

class ApiModel(val networkManager: NetworkManager){}

class LocalFileManager(private var appContext: Context) {}

class NetworkManager(private var appContext: Context) {}

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

Koin初始化:

startKoin(this, listOf(appModule, dataModule))

Proguard規則:

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

堆棧跟蹤:

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'

當您使用androidX時,請在下面的viewmodel庫中使用koin

implementation 'org.koin:koin-androidx-viewmodel:1.0.2'

問題提供了所需的解決方案

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM