You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android集成KOIN遇NoClassDefFoundError错误求助

Android集成Koin框架遭遇NoClassDefFoundError错误

错误信息

java.lang.NoClassDefFoundError: Failed resolution of: Lorg/koin/android/ext/android/AndroidKoinScopeExtKt;

涉事代码

依赖配置

implementation 'io.insert-koin:koin-android:3.4.0'

SplashActivity实现

class SplashActivity: AppCompatActivity() {
    private val viewModel: SplashViewModel by viewModel()
    // ... 其余代码
}

自定义Application类

class MyApplication: Application() {
    override fun onCreate() {
        super.onCreate()
        startKoin {
            androidLogger(Level.ERROR)
            androidContext(this@MyApplication)
            androidFileProperties()
            koin.loadModules(getAllModules())
        }
    }
    // ... 其余代码
}

Koin模块定义

val presentationModules = module {
    viewModel {
        SplashViewModel(
            urlUseCase = get(),
        )
    }
}

val mapperModules = module {
    single(named(urlResponseToUrlAddress)){
        UrlResponseToUrlAddress()
    }
}

// ... 其他模块代码

object AppComponent {
    fun getAllModules(): List<Module> = listOf(*getAppModules())

    private fun getAppModules(): Array<Module>{
        return arrayOf(
            domainModules,
            mapperModules,
            dataModules,
            otherModules,
            presentationModules,
        )
    }
}

解决办法

  • 补充缺失的Koin依赖:Koin 3.x版本中,by viewModel()委托需要依赖koin-androidx-viewmodel库,仅引入koin-android不足以支持ViewModel注入。在build.gradle中添加:
    implementation 'io.insert-koin:koin-androidx-viewmodel:3.4.0'
    
  • 统一Koin依赖版本:确保项目中所有Koin相关依赖(如koin-core、koin-android等)版本完全一致,版本不匹配会引发类加载冲突。
  • 清理重建项目:执行Android Studio的Clean Project和Rebuild Project操作,清除旧编译缓存,保证新依赖被正确加载。
  • 配置混淆规则(若开启混淆):如果项目启用了代码混淆,需在proguard-rules.pro中添加Koin的保护规则,避免核心类被混淆移除:
    -keep class org.koin.** { *; }
    -keepnames class org.koin.** { *; }
    

内容的提问来源于stack exchange,提问作者FlipNovid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 22:55:28