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

引入KMongo 4.8.0至SDK项目时出现Record desugaring构建错误求助

解决KMongo依赖导致的「Record desugaring」构建错误

问题原因

KMongo 4.8.0依赖的Mongo Java Driver等库使用了Java Record特性,而Android SDK项目默认编译配置未启用core library desugaring,无法处理这类Java 16+特性,从而触发构建错误。简单Kotlin JVM项目因JDK版本或默认配置原生支持Record特性,所以无此问题。

解决方案

  • 启用coreLibraryDesugaring
    在SDK模块的build.gradle(或build.gradle.kts)中添加以下配置,开启Java 8+特性的desugaring支持:
    Groovy示例:

    android {
        compileOptions {
            coreLibraryDesugaringEnabled true
            sourceCompatibility JavaVersion.VERSION_1_8
            targetCompatibility JavaVersion.VERSION_1_8
        }
    
        kotlinOptions {
            jvmTarget = "1.8"
        }
    }
    
    dependencies {
        coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.4'
        implementation 'org.litote.kmongo:kmongo:4.8.0'
    }
    

    Kotlin DSL示例:

    android {
        compileOptions {
            isCoreLibraryDesugaringEnabled = true
            sourceCompatibility = JavaVersion.VERSION_1_8
            targetCompatibility = JavaVersion.VERSION_1_8
        }
    
        kotlinOptions {
            jvmTarget = "1.8"
        }
    }
    
    dependencies {
        coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.0.4")
        implementation("org.litote.kmongo:kmongo:4.8.0")
    }
    
  • 升级KMongo版本
    尝试升级到KMongo 5.x及以上版本,新版本通常会优化对Android环境的兼容性,可能已修复相关desugaring冲突问题。

  • 排除冲突依赖(谨慎使用)
    若不想启用desugaring,可尝试排除KMongo中引入的使用Java Record的模块,但可能导致部分功能失效:

    implementation('org.litote.kmongo:kmongo:4.8.0') {
        exclude group: 'org.mongodb', module: 'mongodb-driver-core'
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 05:12:58