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
相关产品推荐
相关产品推荐

