2023年Android 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的android闭包下添加:
compileOptions {
sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17
}
kotlinOptions {
jvmTarget = JavaVersion.VERSION_17
}
高版本的gradle插件中,在BuildConfig中动态配置字段的功能被禁用:defaultConfig contains custom BuildConfig fields, but the feature is disabled
解决,在gradle.properties文件中增加 android.defaults.buildfeatures.buildconfig=true

greendao编译报错:without declaring an explicit or implicit dependency. This can lead to incorrect results being produced, depending on what order the tasks are executed
解决
project.afterEvaluate{
// 这里的kaptGenerateStubsDebugKotlin根据实际情况替换
getTasksByName(“kaptGenerateStubsDebugKotlin”,false).each {
it.mustRunAfter(“greendao”)
}
}
BuildConfig文件不自动生成,被禁用了,在module 的build.gradle的android闭包下添加:
buildFeatures {
buildConfig true
}

-> 环境升级
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.mzph.cn/news/86344.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

面试题 05.02. 二进制数转字符串

面试题 05.02. 二进制数转字符串 二进制数转字符串。给定一个介于0和1之间的实数(如0.72),类型为double,打印它的二进制表达式。如果该数字无法精确地用32位以内的二进制表示,则打印“ERROR”。 示例1: 输入&#x…

深度学习修炼(二)全连接神经网络 | Softmax,交叉熵损失函数 优化AdaGrad,RMSProp等 对抗过拟合 全攻略

文章目录 1 多层感知机(全连接神经网络)1.1 表示1.2 基本概念1.3 必要组成—激活函数1.4 网络结构设计 2 损失函数2.1 SOFTMAX操作2.2 交叉熵损失函数 3 优化3.1 求导计算过于复杂?3.2 链式法则导致的问题?3.3 梯度下降算法的改进…

利用Python将dataframe格式的所有列的数据类型转换为分类数据类型

一、样例理解 import pandas as pd import numpy as np# 创建测试数据 feature_names [col1 , col2, col3, col4, col5, col6] values np.random.randint(20, size(10,6))dataset pd.DataFrame(data values, columns feature_names)print("转换前的数据为\n",d…

【刷题】2023年第十四届蓝桥杯大赛软件类省赛C/C++大学A组真题

蓝桥杯2023年第十四届省赛真题-平方差 - C语言网 (dotcpp.com) 初步想法,x y2 − z2(yz)(y-z) 即xa*b,ayz,by-z 2yab 即ab是2的倍数就好了。 即x存在两个因数之和为偶数就能满足条件。 但时间是(r-l)*x&am…

监督学习和非监督学习, 半监督学习和增强学习

监督学习 给机器的训练数据拥有“标记”或者“答案”, 也就是又有x、又有y 监督的意思是说我们针对给机器的数据进行了正确答案的划分, 这个正确的答案的本身就被称为监督的信息 比如: 生活中很多学习的过程都是监督学习的过程,…

浏览器基本原理

1、浏览器内部组成 我们看到浏览器主要包括: 1个浏览器主进程: 主要负责界面显示,用户交互,子进程管理多个渲染进程:一般浏览器会为每个Tab标签窗口创建一个渲染进程,主要负责将html,css&#…

YOLOv5、YOLOv8改进:C3STR(Swin Transformer)

目录 1.介绍 2. YOLOv5、YOLOv8改进 2.1 common.py配置 2.2 yolo.py配置 2.3 yaml配置文件 1.介绍 视觉领域正在见证从 CNN 到 Transformers 的建模转变,纯 Transformer 架构在主要视频识别基准测试中达到了最高准确度。这些视频模型都建立在 Transformer 层之…

Grafana离线安装部署以及插件安装

Grafana是一个可视化面板(Dashboard),有着非常漂亮的图表和布局展示,功能齐全的度量仪表盘和图形编辑器,支持Graphite、zabbix、InfluxDB、Prometheus和OpenTSDB作为数据源。Grafana主要特性:灵活丰富的图形…

js逆向-某税务网站chinatax分析

目录 一、如图网站二、研究登陆页反爬参数1、datagram参数2、请求接口关系 三、研究详情页反爬参数1、urlyzm与ruuid与x-b3-spanid参数2、los28199参数3、lzkqow23819参数4、jmbw参数 四、最终结果 一、如图网站 二、研究登陆页反爬参数 1、datagram参数 很多接口使用到的dat…

1796_通过vmware打开VirtualBox虚拟机文件

全部学习汇总: GitHub - GreyZhang/toolbox: 常用的工具使用查询,非教程,仅作为自我参考! 首先讲vdi格式转换成vmdk格式,以我自己的环境下的信息,处理如下: VBoxManage clonehd "LinuxMin…

【PowerShell】系统安装PowerShell的Core版本,最新版本为7.1

当前以下操作系统支持PowerShell 7.1 版本的安装,非Windows 系统支持的版本和要求有一定的限制。 Windows 8.1/10 (including ARM64)Windows Server 2012 R2, 2016, 2019, and Semi-Annual Channel (SAC)Ubuntu 16.04/18.04/20.04 (including ARM64)Ubuntu 19.10 (via Snap pac…

ESP-IDF学习——1.环境安装与hello-world

ESP-IDF学习——1.环境安装与hello-world 0.前言一、环境搭建1.官方IDE工具2.vscode图形化配置 二、示例工程三、自定义工程四、点灯五、总结 0.前言 最近在学习freertos,但由于买的书还没到,所以先捣鼓捣鼓ESP-IDF,因为这个比Arduino更接近底…

200行C++代码写一个Qt俄罗斯方块小游戏

小小演示一下: 大体思路: 其实很早就想写一个俄罗斯方块了,但是一想到那么多方块还要变形,还要判断落地什么的就脑壳疼。直到现在才写出来。 俄罗斯方块这个小游戏的小难点其实就一个,就是方块的变形,看似…

如何将本地的项目上传到Git

一、GitHub or GitLab or Gitee创建一个新的仓库 二、仓库路径创建成功后,将本地项目上传到git 1. 进入本地项目所在文件夹位置,右击 2.出现git命令框 输入git init 在当前项目的目录中生成本地的git管理(会发现在当前目录下多了一个.git文件…

转转闲鱼交易猫链接源码 支持二维码收款

最新仿二手闲置链接源码 后台一键生成链接,后台管理教程:解压源码,修改数据库config/Congig 不会可以看源码里有教程 下载程序:https://pan.baidu.com/s/16lN3gvRIZm7pqhvVMYYecQ?pwd6zw3

30.链表练习题(1)(王道2023数据结构2.3.7节1-15题)

【前面使用的所有链表的定义在第29节】 试题1: 设计一个递归算法,删除不带头结点的单链表L中所有值为x的结点。 首先来看非递归算法,暴力遍历: int Del(LinkList &L,ElemType x){ //此函数实现删除链表中为x的元素LNode *…

科技云报道:分布式存储红海中,看天翼云HBlock如何突围?

科技云报道原创。 过去十年,随着技术的颠覆性创新和新应用场景的大量涌现,企业IT架构出现了稳态和敏态的混合化趋势。 在持续产生海量数据的同时,这些新应用、新场景在基础设施层也普遍基于敏态的分布式架构构建,从而对存储技术…

安卓将图片分割或者拉伸或者旋转到指定尺寸并保存到本地

直接上代码吧:你们要用的话可以按照想法改 package com.demo.util;import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Matrix; import android.os.Environment; import android.util.Log;import java.io.File; import java.io.…

代码随想录算法训练营 动态规划part11

一、买卖股票的最佳时机III 123. 买卖股票的最佳时机 III - 力扣(LeetCode) 请选一个喜欢的吧/(ㄒoㄒ)/~~123. 买卖股票的最佳时机 III - 力扣(LeetCode) class Solution {public int maxProfit(int[] prices) {if(pricesnul…

SpringBoot项目(百度AI整合)——如何在Springboot中使用语音文件识别 ffmpeg的安装和使用

前言 前言:在实际使用中,经常要参考官方的案例,但有时候因为工具的不一样,比如idea 和 eclipse,普通项目和spring项目等的差别;还有时候因为水平有限,难以在散布于官方的各个文档读懂&#xff…