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

未修改代码却出现Meteor Cordova项目Kotlin版本不兼容问题

解决Meteor 2.9.0 + Cordova-Android 10 Kotlin版本不兼容构建失败问题

可行解决方案

1. 强制统一Kotlin依赖版本

创建或修改platforms/android/build-extras.gradle文件,添加全局依赖约束,强制所有Kotlin相关库使用同一版本(推荐使用报错中出现的1.7.10,避免依赖冲突):

configurations.all {
    resolutionStrategy {
        force 'org.jetbrains.kotlin:kotlin-stdlib:1.7.10'
        force 'org.jetbrains.kotlin:kotlin-stdlib-common:1.7.10'
        force 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.10'
    }
}

同时更新项目中所有硬编码的Kotlin版本配置为1.7.10:

  • 修改android.json中的GradlePluginKotlinVersion值
  • 修改cdv-gradle-config.json中的KOTLIN_VERSION值
  • 修改plugins/@havesource/cordova-plugin-push/plugin.xml中的GradlePluginKotlinVersion值

完成后清理构建缓存并重新构建:

meteor reset
rm -rf .meteor/local/cordova-build
cordova clean android
meteor run android-device

2. 排查间接依赖来源

进入platforms/android目录,执行Gradle命令查看依赖树,定位引入高版本Kotlin的插件或库:

./gradlew dependencies | findstr "kotlin-stdlib"

找到冲突依赖后,可通过build-extras.gradle单独排除该依赖的高版本Kotlin引用,或升级/降级对应插件。

3. 临时跳过版本检查(应急用)

若需要快速构建,可在build-extras.gradle中添加编译参数跳过Kotlin元数据版本检查(不推荐长期使用,可能隐藏潜在问题):

android {
    kotlinOptions {
        freeCompilerArgs += ['-Xskip-metadata-version-check']
    }
}

原因分析

尽管项目所有配置都指定了Kotlin 1.5.20,但部分间接依赖(如androidx.annotation:annotation:1.5.0)本身是用Kotlin 1.7编译的,会自动引入对应版本的Kotlin标准库,导致类路径中同时存在1.5和1.7版本的JAR包,触发版本不兼容错误。Meteor/Cordova的自动构建系统未处理此类隐式依赖冲突,需手动干预统一版本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 09:37:19