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

Room与Kotlinx Coroutines的org.jetbrains:annotations版本冲突导致项目构建失败

Room与Kotlinx Coroutines的org.jetbrains:annotations版本冲突导致项目构建失败

嘿,我看你遇到了Room和项目里其他依赖(比如Compose Destinations)之间的org.jetbrains:annotations版本冲突问题,这在多依赖的Android项目里挺常见的,我帮你梳理下解决思路和具体步骤:

一、先清理重复依赖

我注意到你的build.gradle里重复声明了不少依赖(比如navigation、lifecycle、destinationsKsp都写了两次),这会增加依赖解析的复杂度,先把这些重复项去掉:

原依赖块里的重复部分:

implementation(libs.bundles.navigation)
ksp(libs.destinationsKsp)
...
implementation(libs.bundles.navigation) // 重复
ksp(libs.destinationsKsp) // 重复
implementation(libs.bundles.lifecycle) // 重复

清理后只保留一次即可,减少不必要的解析负担。

二、强制统一org.jetbrains:annotations版本

Gradle依赖冲突的核心是不同库拉取了同一依赖的不同版本,我们可以通过强制指定统一版本来解决,有两种常用方式:

方式1:在依赖块里直接强制指定版本

在dependencies块中添加强制依赖,比如选择Room 2.7.2兼容的24.1.0版本(你可以根据实际冲突的版本调整):

dependencies {
    // 其他依赖...
    // 强制统一org.jetbrains:annotations版本
    implementation("org.jetbrains:annotations:24.1.0") {
        force = true
    }
}

方式2:全局强制所有配置使用统一版本

如果想更彻底地统一整个项目的版本,可以在android块外添加全局解析策略:

configurations.all {
    resolutionStrategy {
        // 替换成你需要统一的版本号
        force "org.jetbrains:annotations:24.1.0"
    }
}

三、补全Room的KSP配置

我注意到你在版本目录里定义了roomcompiler,但当前build.gradle的dependencies里没有通过KSP引入它——Room Compiler需要通过KSP(或kapt)来引入,否则注解处理会出问题,记得加上:

dependencies {
    // 其他依赖...
    ksp(libs.roomcompiler)
}

最后验证

修改完成后,你可以运行./gradlew :app:dependencyInsight --dependency org.jetbrains:annotations --configuration debugRuntimeClasspath来确认版本是否已经统一,然后重新构建项目。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.07 07:28:03