Kotlin 1.5.31出现undefined methods标准函数未解析引用错误如何解决?
原因分析
- Kotlin版本不匹配:项目中
kotlin-stdlib标准库的依赖版本与kotlin-gradle-plugin1.5.31版本不一致,若第三方依赖引入了更高版本的Kotlin标准库,高版本API会被低版本编译器识别为未解析引用。 - IDE插件版本冲突:Android Studio内置的Kotlin插件版本与项目使用的1.5.31版本不兼容,会导致IDE语法校验逻辑与项目编译配置脱节,出现误报的未解析引用错误。
- 缓存损坏:本地Gradle或IDE缓存的Kotlin相关依赖文件损坏,编译器无法正常加载标准库的API声明。
- 依赖管理规则异常:若项目配置了依赖强制对齐规则,错误的规则会把Kotlin标准库版本强制修改为不兼容的版本。
解决方案
以下方案均无需升级Kotlin到1.6.0,不会影响Jetpack Compose的正常使用:
- 统一Kotlin全链路依赖版本
在项目根目录的build.gradle中添加强制版本对齐规则,锁定所有Kotlin相关依赖为1.5.31:
configurations.all { resolutionStrategy { force "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.31" force "org.jetbrains.kotlin:kotlin-stdlib-common:1.5.31" force "org.jetbrains.kotlin:kotlin-reflect:1.5.31" } }
同时检查所有模块级build.gradle文件,确保没有单独指定高于1.5.31的Kotlin标准库版本。
对齐IDE Kotlin插件版本
打开Android Studio的「Settings > Plugins > Kotlin」,将Kotlin插件版本降级到1.5.31,安装完成后重启IDE即可消除语法校验误报。清理损坏的缓存
依次执行以下操作:
- 点击IDE顶部菜单「File > Invalidate Caches...」,勾选清除文件系统缓存和本地历史选项,重启IDE
- 在项目根目录执行终端命令
./gradlew clean清理项目构建缓存 - 重新触发项目构建即可
- 确认Compose版本匹配
Kotlin 1.5.31对应的稳定兼容Jetpack Compose版本为1.0.5,检查模块级build.gradle中的Compose配置是否正确:
android { composeOptions { kotlinCompilerExtensionVersion "1.0.5" } }
内容的提问来源于stack exchange,提问作者Emmanuel Mtali
相关产品推荐
相关产品推荐

