2023年Android Gradle、Gradle插件以及Kotlin版本升级记录

news/2024/5/20 5:26:00 标签: android, kotlin, gradle, gradle插件版本, kotlin版本

Compose和kotlin版本对应关系:https://androidx.dev/storage/compose-compiler/repository
gradle版本和gradle插件版本对应关系:
https://developer.android.google.cn/studio/releases/gradle-plugin?hl=zh-cn
gradle最新版本在这里找:https://services.gradle.org/distributions/
第三方库依赖库版本在这里找:https://mvnrepository.com/
在File -> Project Structure这里都可以看到并配置gradle版本、gradle插件版本和kotlin版本

最初环境
classpath ‘com.android.tools.build:gradle:4.2.1’
distributionUrl=https://services.gradle.org/distributions/gradle-6.7.1-bin.zip
org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.10

-> 环境升级
classpath ‘com.android.tools.build:gradle:7.0.2’
distributionUrl=https://services.gradle.org/distributions/gradle-7.0.2-bin.zip
org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.10(1.7.10)(1.9.0)

修改内容:
之前maven仓库链接可以是http的,升级之后必须是https的
kotlin版本升级到1.7.10:修改两个地方:1.when() 添加branch 2.空安全处理
kotlin1.7.10升级到1.9.0:修改一个地方:
kotlinx.android.synthetic.** 这种通过 apply plugin: ‘kotlin-android-extensions’ 方式(插件)不能使用了

-> 环境升级
classpath ‘com.android.tools.build:gradle:7.1.0’
distributionUrl=https://services.gradle.org/distributions/gradle-7.2-bin.zip
org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.0

思路方法:
gradlew compileDebugSource --stacktrace -info 命令查看解决方法
通过Upgrade Assistant 升级gradle插件(AGP)

修改内容:
sourceCompatibility JavaVersion.VERSION_11
compileSdkVersion 30
空安全处理
Gradle JDK成 11版本

-> 环境升级
classpath ‘com.android.tools.build:gradle:7.4.2’
distributionUrl=https://services.gradle.org/distributions/gradle-7.5-bin.zip
org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.0

修改内容:
compileSdkVersion 31
类重复Duplicate class androidx.lifecycle.ViewModelLazy found in modules
Duplicate class androidx.lifecycle.ViewModelProviderKt found in modules
修改
configurations {
all {
exclude group: ‘androidx.lifecycle’, module: ‘lifecycle-viewmodel-ktx’
}
}

-> 环境升级
classpath ‘com.android.tools.build:gradle:8.0.0’
distributionUrl=https://services.gradle.org/distributions/gradle-8.0-bin.zip
org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.0

修改内容:
namespace 每个module都要有namespace
org.greenrobot:greendao-gradle-plugin由3.3.0升级到3.3.1
Gradle JDK成 17版本
这个报错提示task (current target is 17) jvm target compatibility should be set to the same Java version
修改
module 的build.gradle修改
compileOptions {
sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17
}

kotlinOptions {
jvmTarget = ‘17’
}
…????????????????????

-> 环境升级
classpath ‘com.android.tools.build:gradle:8.2.0-alpha10’
distributionUrl=https://services.gradle.org/distributions/gradle-8.2-bin.zip
org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.0

新版本gradle的变化调整:
https://blog.csdn.net/sinat_38167329/article/details/123175556
https://developer.android.google.cn/studio/build/migrate-to-catalogs?hl=zh-cn
https://juejin.cn/post/7160337743552675847
https://juejin.cn/post/7222529227676385336

plugins {
id ‘com.android.application’ version ‘8.2.0-alpha10’ apply false
id ‘com.android.library’ version ‘8.2.0-alpha10’ apply false
id ‘org.jetbrains.kotlin.android’ version ‘1.9.0’ apply false
}

plugins {
alias(libs.plugins.androidApplication) apply false
alias(libs.plugins.kotlinAndroid) apply false
}


http://www.niftyadmin.cn/n/5032458.html

相关文章

【OpenSSL】VC编译OpenSSL

VC编译OpenSSL 编译工具准备编译OpenSSL建立Hello World工程创建VS工程 编译工具准备 安装好Visual Studio。安装Perl, 主要是用来生成nmake的。准备好汇编语言编译工具nasm,并添加到path路径。下载好Open SSL源代码。 编译OpenSSL 安装Perl,并加入到path路径,检验…

SkyWalking快速上手(二)——架构剖析2

文章目录 介绍UI组件什么是UI组件?UI组件的配置配置UI组件示例使用SkyWalking UI Storage组件什么是Storage组件?Storage组件的配置配置Storage组件示例 结语 介绍 接上篇文章:SkyWalking快速上手(二)——架构剖析1 S…

LeetCode 753. 破解保险箱【欧拉回路,DFS】困难

本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章…

多线程和网路编程写的客户端和服务端的交流

客户端 Socket socket new Socket("127.0.0.1", 10001);Scanner sc new Scanner(System.in); Socket用于接收或输出数据,指定ip地址和端口 while (true) {// 从连接通道中获取输出流OutputStream os socket.getOutputStream();// 写出数据System.out.…

Mac FoneLab for Mac:轻松恢复iOS数据,专业工具助力生活

如果你曾经不小心删除了重要的iOS数据,或者因为各种原因丢失了这些数据,那么你一定知道这种痛苦。现在,有一个名为Mac FoneLab的Mac应用程序,它专门设计用于恢复iOS数据,这可能是你的救星。 Mac FoneLab for Mac是一种…

HTTPS的工作过程

HTTPS就是对HTTP进行了加密,因为要保证数据安全,就需要进行加密,网络中不再直接传输明文了,而是加密之后的密文,加密的方法有很多,但是整体可以分为两大类:对称加密和非对称加密 对称加密 对称加密其实就是…

Git 命令图形化在线练习

git 命令在线练习网址如下: http://onlywei.github.io/explain-git-with-d3/ 在master上先提交2个commit,创建3个分支,分支1打5个commit,分支2打6commit ,分支3commit,master分支打9commit. git commit -m "master c 1" git commit -m "master c 1"git …

微服务整合Gateway网关

✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏: 微服务探索之旅 ✨特色专栏&#xff1…