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

NativeScript执行ns run android时出现Kotlin类重复错误求助

解决NativeScript安卓构建Kotlin类重复冲突问题

修复步骤

1. 全局强制统一Kotlin版本

在项目根目录的build.gradle文件中添加以下配置,强制所有依赖使用同一版本的Kotlin标准库(选冲突里的高版本1.9.0即可):

buildscript {
    ext {
        kotlinVersion = "1.9.0"
    }
}

allprojects {
    configurations.all {
        resolutionStrategy {
            force "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion"
            force "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlinVersion"
        }
    }
}

2. 确认依赖冲突细节

执行命令查看完整依赖树,确认是否还有其他依赖引入旧版Kotlin:

ns run android --log trace | grep kotlin
# 或者进入安卓平台目录执行gradle命令
cd platforms/android
./gradlew dependencies | grep kotlin

3. 调整冲突依赖版本

  • 尝试升级两个嫌疑依赖到最新稳定版,看官方是否已修复版本兼容问题:
    npm install @nativescript/geolocation@latest @nativescript/background-http@latest
    
  • 如果升级无效,找两个依赖都兼容同一Kotlin版本的历史版本组合,比如查看它们的release notes确认依赖的Kotlin版本后,降级其中一个依赖。

4. 彻底清理构建缓存

修改配置或依赖后,必须清理缓存避免残留:

# 清理NativeScript项目缓存
ns clean
# 清理全局gradle缓存(可选,彻底解决缓存遗留问题)
rm -rf ~/.gradle/caches

5. 局部gradle配置补充(备用)

如果全局配置不生效,在App_Resources/Android/app.gradle中添加局部强制规则:

configurations.all {
    resolutionStrategy {
        exclude group: 'org.jetbrains.kotlin', module: 'kotlin-stdlib-jdk8', version: '1.6.0'
        force "org.jetbrains.kotlin:kotlin-stdlib:1.9.0"
        force "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.0"
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 22:45:02