升级至Android Studio 3.1稳定版后构建项目出现编译错误
解决Android Studio 3.1稳定版升级后Kotlin编译报错的方案
兄弟,我之前升级AS 3.1稳定版的时候也踩过这个Kotlin编译报错的坑,给你整理几个亲测有效的解决方向,你挨个试试:
先确认Kotlin插件和Gradle版本的兼容性
AS 3.1稳定版对Kotlin插件版本有明确要求,建议使用1.2.30及以上的兼容版本。你可以打开项目根目录的build.gradle文件,检查这两处配置:buildscript { ext.kotlin_version = '1.2.30' // 也可以换成更高的兼容版本,比如1.2.41 repositories { google() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.1.0' // 确保Gradle插件是3.1.0版本 classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } }同时别忘了检查app模块下
build.gradle里的Kotlin依赖版本要和上面保持一致:implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"清理缓存+重建项目,解决玄学编译问题
升级后AS的缓存很容易残留旧数据,导致奇怪的编译错误,按这个步骤操作:- 点击AS顶部菜单栏的
Build→Clean Project - 接着点击
Build→Rebuild Project - 如果还不行,手动删掉项目根目录的
.gradle、build文件夹,以及app模块下的build文件夹,重启AS后再重新构建
- 点击AS顶部菜单栏的
查看完整编译日志,定位具体错误根源
错误提示里的“See log for more details”是关键,光看简短的报错信息找不到问题所在,你可以这么获取详细日志:- 在AS底部的
Build窗口切换到Gradle Console标签,里面会有完整的编译输出,能看到具体是哪个类、哪行代码出了问题 - 或者打开终端,执行
./gradlew assembleDebug --stacktrace(Mac/Linux)或者gradlew assembleDebug --stacktrace(Windows),这样能拿到详细的错误栈,精准定位问题
- 在AS底部的
回头检查DataBinding的相关代码
你之前刚修复过DataBinding的问题,可能还有残留的小细节没处理好:- 检查布局文件里的DataBinding表达式,比如变量引用、方法调用有没有语法错误,AS 3.1对DataBinding的空安全检查更严格了
- 看看Kotlin代码里的DataBinding用法,比如
DataBindingUtil.setContentView的调用、绑定类的引用是否正确,有没有因为版本升级导致的API变动
临时禁用Kotlin增量编译(救急方案)
如果上面的方法都不管用,可以试试禁用Kotlin的增量编译,在项目根目录的gradle.properties里添加一行:kotlin.incremental=false这个方法会让编译时间变长,但能排查是不是增量编译的bug导致的问题,等问题解决后再改回来就行
内容的提问来源于stack exchange,提问作者Karamba
相关产品推荐
相关产品推荐

