Kotlin标准库依赖冲突引发重复类错误,寻求解决方案
Kotlin重复类运行时错误解决方案
问题原因
项目中同时引入了不同版本的Kotlin标准库(1.8.0版本与1.7.20版本的kotlin-stdlib-jdk7/kotlin-stdlib-jdk8变体),导致类定义重复,触发运行时冲突。
具体解决步骤
1. 统一项目级Kotlin版本
打开项目根目录的build.gradle(或build.gradle.kts),确保全局Kotlin版本统一为1.8.0:
buildscript { ext { kotlin_version = "1.8.0" } dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } }
如果使用新版Android Gradle Plugin,需在settings.gradle的pluginManagement中配置:
pluginManagement { plugins { kotlin("android") version "1.8.0" } }
2. 强制依赖统一版本
在模块的build.gradle中添加依赖约束,强制所有依赖的Kotlin标准库使用1.8.0版本:
configurations.all { resolutionStrategy { force "org.jetbrains.kotlin:kotlin-stdlib:1.8.0" force "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0" force "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0" } }
3. 清理模块级旧版本依赖
打开模块的build.gradle,检查dependencies块,删除所有显式引用kotlin-stdlib-jdk7:1.7.20/kotlin-stdlib-jdk8:1.7.20的代码行。Android Studio通常会自动匹配Gradle插件版本引入对应标准库,无需手动声明旧版本。
4. 彻底清理缓存并重构
执行Gradle命令强制清理缓存并刷新依赖:
./gradlew clean build --refresh-dependencies
同时可手动删除以下目录后重启Android Studio:
- Windows:
C:\Users\<你的用户名>\.gradle\caches - Mac/Linux:
~/.gradle/caches - 项目根目录下的
.gradle和build文件夹
5. 验证依赖树
执行命令查看依赖树,确认无旧版本Kotlin标准库残留:
./gradlew app:dependencies
在输出中搜索kotlin-stdlib,确保所有相关依赖均为1.8.0版本。
内容的提问来源于stack exchange,提问作者Foram Soni
相关产品推荐
相关产品推荐

