记一次Android项目升级Kotlin版本(1.5 -> 1.7)
原文地址: 记一次Android项目升级Kotlin版本(1.5 -> 1.7) - Stars-One的杂货小窝
由于自己的历史项目Kotlin版本比较老了,之前已经升级过一次了(1.4->1.5),那次升级就比较容易,没遇到什么坑
这次因为要开个新项目,用到了别人的三方库,加了依赖引用后跑项目报错,提示都是要求Kotlin版本需要是1.7,于是便是折腾了下
升级步骤
首先,说下我的开发环境,用的Android Studio Chipmunk版本
1.升级Kotlin版本
我们进入到项目里的setting.gradle,修改kotlin版本为1.7.10即可
为什么知道是1.7.10版本,因为IDE有提示...
2.升级Gradle
改了Kotlin版本跑项目,不出所料报错了
编译的错误说明Gradle版本不对,所以我就先改成了7.2版本(原先是6.6版本)
知道gradle文件夹下的gradle.properties,将里面的地址改为7.2版本
distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-all.zip
至于具体的Gradle版本,还得看Android Gradle插件版本(AGP版本)支持,所以看下一节内容说明
3.升级Android Gradle插件版本
这里实际上就是所说的AGP版本
编译出现了下面的错误
Execution failed for task ':app:compileDebugJavaWithJavac'.
> Failed to calculate the value of task ':app:compileDebugJavaWithJavac' property 'options.generatedSourceOutputDirectory'.
> Querying the mapped value of map(java.io.File property(org.gradle.api.file.Directory, fixed(class org.gradle.api.internal.file.DefaultFilePropertyFactory$FixedDirectory, D:\project\android\xn-music-downloader\app\build\generated\ap_generated_sources\debug\out)) org.gradle.api.internal.file.DefaultFilePropertyFactory$ToFileTransformer@26f5c67c) before task ':app:compileDebugJavaWithJavac' has completed is not supported
编译出现这个问题有所懵逼的,于是问了下万能的Chatgpt,给出了以下建议
想着第三点可能是关键,于是就是尝试去修改了下,之前项目是4.0.0版本,根据ChatGPT的建议改成4.3.0没有起到作用
于是想着是不是要搞高版本,那高版本好应该是多少呢?我们可以去官网上的说明找到下图的说明
Android Gradle 插件版本说明 | Android 开发者 | Android Developers
看着我的花栗鼠版本的话,最高支持7.2,但是实际改了之后发现依赖根本找不到,于是版本号尝试加多了个0就可以成功依赖了
我尝试了7.2.0,然后给了提示
然后我们将gradle版本改为7.3.3版本即可完成
最后,由于Gradle版本7.x开始,都需要JDK11才能编译成功,所以我们还得去设置修改下JDK(因为我是从6.x版本升级上来的)