You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

升级RTC引擎及UI至2.9版本后出现NoClassDefFoundError错误的解决方法咨询

升级RTC引擎及UI至2.9版本后出现NoClassDefFoundError错误的解决方法咨询

Hey,我之前也碰到过一模一样的问题!这个java.lang.NoClassDefFoundError: Failed resolution of: Lkotlin/enums/EnumEntriesKt;报错,大概率是Kotlin版本不兼容搞出来的麻烦——EnumEntriesKt是Kotlin 1.4及以上版本才新增的API,要是你的项目里用的Kotlin版本低于这个门槛,就会出现找不到这个类的情况。

给你几个亲测有效的解决步骤:

  • 检查并升级Kotlin版本
    打开项目根目录下的build.gradle(或者build.gradle.kts)文件,找到Kotlin版本的配置项,把它升级到1.4.30及以上的稳定版本就行。举个例子:

    buildscript {
        ext.kotlin_version = "1.4.30"
        // 其他配置内容...
    }
    

    要是你用的是KTS脚本,就改成这样:

    buildscript {
        val kotlinVersion by extra("1.4.30")
        // 其他配置内容...
    }
    
  • 同步依赖并清理重建项目
    改完版本后,记得点Android Studio里的「Sync Now」同步依赖,然后依次执行「Clean Project」和「Rebuild Project」,把旧的编译缓存清干净,确保新的Kotlin版本能生效。

  • 确认RTC组件的Kotlin版本要求
    有些RTC SDK的UI组件会明确标注所需的最低Kotlin版本,你可以去查一下2.9版本的官方说明,确保你的项目版本和它的要求匹配。要是SDK要求更高的版本,就直接升级到指定的版本就行。

  • 排除依赖冲突(如果存在)
    要是项目里其他依赖引入了低版本的Kotlin库,可能会和RTC组件的依赖冲突。你可以在终端运行./gradlew app:dependencies查看完整的依赖树,找到冲突的Kotlin模块,然后在RTC UI组件的依赖声明里排除掉低版本的部分,比如:

    implementation('com.example:rtc-ui:2.9') {
        exclude group: 'org.jetbrains.kotlin', module: 'kotlin-stdlib'
    }
    

备注:内容来源于stack exchange,提问作者 AstralWanderer

火山引擎 最新活动