在Android Studio中构建旧Android项目时出现Kotlin相关错误
这种情况我之前帮朋友排查过,虽然你没写一行Kotlin代码,但问题大概率出在第三方依赖间接引入了旧版Kotlin库,或者项目gradle配置里残留了Kotlin相关的配置项,下面是一步步的解决方法:
第一步:排查项目中的Kotlin残留配置
先检查两个关键文件:- 项目根目录的
build.gradle(或build.gradle.kts):看看plugins块里有没有id 'org.jetbrains.kotlin.android'这类Kotlin插件声明,如果有直接删掉。 - 模块(比如
app)下的build.gradle:搜索有没有implementation 'org.jetbrains.kotlin:kotlin-stdlib-jre8:1.2.0'或类似的依赖,有的话直接移除。
- 项目根目录的
第二步:定位间接引入Kotlin的第三方依赖
如果没有找到直接的Kotlin配置,那肯定是某个第三方库偷偷带了这个旧版依赖。你可以用Android Studio的依赖分析工具快速定位:- 打开
File > Project Structure,切换到Dependencies标签页,在搜索框输入kotlin-stdlib-jre8,就能看到是哪个依赖引入了它。 - 或者用命令行更直观:在项目根目录执行
./gradlew app:dependencies(Windows系统用gradlew.bat app:dependencies),输出结果里搜索kotlin-stdlib-jre8,找到它的依赖路径。
找到对应的第三方依赖后,优先选择更新这个依赖到最新版本——通常新版库会适配更高版本的Kotlin,自然就不会再引用1.2.0这种老旧版本了。
- 打开
第三步:强制统一Kotlin版本(兜底方案)
如果不想更新第三方依赖,或者更新后还是有问题,可以强制让项目使用统一的Kotlin版本,同时注意kotlin-stdlib-jre8已经被废弃,建议替换成kotlin-stdlib-jdk8。在项目根目录的build.gradle中添加如下配置:allprojects { repositories { // 保持你原有的仓库配置(比如google()、mavenCentral()等) } configurations.all { resolutionStrategy { // 强制使用指定版本的Kotlin标准库,版本号可以和Android Studio自带的Kotlin版本保持一致 force 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22' // 可选:统一所有Kotlin相关依赖的版本 eachDependency { details -> if (details.requested.group == 'org.jetbrains.kotlin') { details.useVersion '1.8.22' } } } } }版本号可以在Android Studio的
Tools > Kotlin > Configure Kotlin Plugin Updates里查看当前AS适配的Kotlin版本,直接用那个版本号就行。第四步:清理缓存重启
最后别忘了执行File > Invalidate Caches... > Invalidate and Restart,清理Android Studio的缓存,有时候缓存过期也会导致依赖查找异常。
如果做完这些还是有问题,可以把./gradlew app:dependencies的输出结果贴出来,我可以帮你进一步排查~
内容的提问来源于stack exchange,提问作者SpaceOdyssey2001

