Compose学习 - 环境配置及compose、kotlin插件、gradle、AndroidStudio版本对应关系

最近学习Compose,一开始学习的Compose版本是1.1.1,学习的过程中发现, LazyHorizontalGrid这个方法只有在1.2.0以后版本才支持。

想着既然要升级,直接用最新的好了。后面按照官网建议,下载了最新的AndroidStudio,我目前下载的最新的是giraffe版本。然后直接新建了一个Compose项目这样会自动导入Compose相关依赖,在配置的过程遇到一系列的问题,这里记录下:

1、版本配置

官方推荐我们使用BOM(物料清单)来管理所有的compose依赖版本,以便于我们使用,它为我们整理了一个版本中一些相互关联的依赖,使我们在开发过程中不用担心依赖迭代和一些新特性。

dependencies {// 导入compose bomimplementation(platform("androidx.compose:compose-bom:2023.03.00"))// 导入其他的没有版本号的compose依赖,让bom管理版本号implementation("androidx.compose.ui:ui")implementation("androidx.compose.ui:ui-graphics")implementation("androidx.compose.ui:ui-tooling-preview")// 加上了版本号以覆盖material3的bom设置,使用alpha01版本implementation ("androidx.compose.material3:material3:1.1.0-alpha01")implementation("androidx.activity:activity-compose:1.7.0")
}

上例介绍了使用Bom的不同的两种场景,第一种就是在依赖后加上版本号从而不让Bom管理依赖版本,适用于体验新特性的时候,而第二种就是我们常用的用法,不加版本号,让Bom替我们管理依赖。

这里是Bom和库版本对应表链接:BOM 与库版本对应表

值得注意的是Compose Kotlin 编译器扩展 (androidx.compose.compiler) 未关联到 Compose 库版本。相反,它会关联到 Kotlin 编译器插件的版本,并与 Compose 的其余部分分开发布,因此请务必使用与您的 Kotlin 版本兼容的版本。

Compose 编译器版本和Kotlin版本对应关系链接:Compose 与 Kotlin 的兼容性对应关系
请添加图片描述

因为Kotlin插件的版本和Gradle版本之间也是有一定的对应关系,因此,升级Kotlin版本后注意Gradle版本的升级。

Gradle版本和Kotlin版本对应关系链接Compatibility Matrix
请添加图片描述

如果你升级了Gradle,这个时候如果你的AndroidStudio版本低的话也会提醒升级AndroidStudio。

Android Studio 版本和AGP(Android gradle 插件版本)版本关系链接:Android Gradle 插件和 Android Studio 兼容性

请添加图片描述

这里再补充两个对应关系:

Gradle版本和Java版本对应关系链接Compatibility Matrix
请添加图片描述
Gradle和Gradle插件对应关系链接:Android Gradle 插件版本说明
请添加图片描述
上面的截图都是目前我去官网看的时候最新对应关系,截图中没有大家需要的话,就去后面附带的链接里去找,官网上会有更新。

2、配置出现问题

  • 问题1:Failed to find Build Tools revision 33.0.3

参考文章【Android Bug】Failed to find Build Tools revision 30.0.3

依照上面文章,我看了下本地的 Build Tools版本,我的最大的可选择下载版本是33.0.2,没法下载33.0.3。如果大家也遇到这个问题,可以这样解决:File -> Project Structure -> Modules -> 右侧在Build Tools revision 中选择33.0.2,你的最大版本,可解决这个问题。

  • 问题2:Plugin [id: ‘com.android.application’, version: ‘8.1.1’, apply: false] was not found in any of the following sources

默认新建项目Gradle版本是8.0,插件8.1.1死活拉不下来,我是用的aliyun的镜像,配置的是没问题的,为解决这个问题,把版本降低到8.0.1,配置如下:

id("com.android.application") version "8.0.1" apply false
id("org.jetbrains.kotlin.android") version "1.8.10" apply false

然后又报错;sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException

证书又有问题了,然后导入了google和jcenter的证书,命令大家可以参考下:

keytool -import -alias jcenter -file "C:\Program Files\Android\Android Studio1\jbr\lib\security\jcenter.cer" -keystore "C:\Program Files\Android\Android Studio1\jbr\lib\security\cacerts"keytool -import -alias google -file "C:\Program Files\Android\Android Studio1\jbr\lib\security\google.cer" -keystore "C:\Program Files\Android\Android Studio1\jbr\lib\security\cacerts"

然后终于可以跑通了。。。。

最新AndroidStudio版本Maven的引用和之前的方式也不一样,这里贴下部分引用:

repositories {maven {url = uri("https://maven.aliyun.com/repository/central")}maven {url = uri("https://maven.aliyun.com/repository/google")}maven {url = uri("https://maven.aliyun.com/repository/gradle-plugin")}
}

码字不易,如有帮助到大家请点赞收藏,谢谢。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/117903.html

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

相关文章

初步了解ES

一、ES基础查询 1、es基础查询 1.1 准备数据 # 准备数据 PUT test_index/_doc/1 {"name":"顾老二","age":30,"from": "gu","desc": "皮肤黑、武器长、性格直","tags": ["黑", &…

【100天精通Python】Day52:Python 数据分析_Numpy入门基础与数组操作

目录 1 NumPy 基础概述 1.1 NumPy的主要特点和功能 1.2 NumPy 安装和导入 2 Numpy 数组 2.1 创建NumPy数组 2.2 数组的形状和维度 2.3 数组的数据类型 2.4 访问和修改数组元素 3 数组操作 3.1 数组运算 3.2 数学函数 3.3 统计函数 4 数组形状操作 4.1 重塑数组形…

nvm安装electron开发与编译环境

electron总是安装失败,下面说一下配置办法 下载软件 nvm npmmirror 镜像站 安装nvm 首先最好卸载node,不卸载的话,安装nvm会提示是否由其接管,保险起见还是卸载 下载win中的安装包 配置加速节点nvm node_mirror https://npmmi…

Java 中数据结构LinkedList的用法

LinkList 链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的地址。 链表可分为单向链表和双向链表。 一个单向链表包含两个值: 当前节点…

PATH系统环境变量配置教程【图文步骤】

开发Java程序,需要使用JDK提供的开发工具(比如javac.exe、java.exe等命令),而这些工具在JDK的安装目录的 bin目录下,如果不配置环境变量,那么这些命令只可以在该目录下执行。我们不可能把所有的java文件都放到JDK 的bin目录下&…

​7.3 项目3 贪吃蛇(控制台版) (A)​

C自学精简实践教程 目录(必读) 主要考察 模块划分 / 文本文件读取 UI与业务分离 / 模块划分 控制台交互 / 数据抽象 需求 用户输入字母表示方向,实现贪吃蛇游戏 规则:碰到边缘和碰到蛇自己都算游戏结束 输入文件 data.txt data.txt 内容如下&am…

MySQL数据库备份及恢复

数据备份的重要性 1、备份的主要目的是灾难恢复 2、在生产环境中,数据的安全性至关重要 3、任何数据的丢失都可能产生严重的后果 4、造成数据丢失的原因 备份类型(重点) 1、物理备份 数据库备份可以分为物理备份和逻辑备份。物理备份是对数据库操作系统的物…

kafka详解一

kafka详解一 1、消息引擎背景 根据维基百科的定义,消息引擎系统是一组规范。企业利用这组规范在不同系统之间传递语义准确的消息,实现松耦合的异步式数据传递. 即:系统 A 发送消息给消息引擎系统,系统 B 从消息引擎系统中读取 A…

城市白模三维重建

收费工具,学生党勿扰,闹眼子当勿扰 收费金额:2000元,不能开发票 1 概述 几个月前,一家小公司找我帮忙给他们开发一个程序,可以将一个城市进行白模的三维重建。 报酬大约5K。经过不懈的努力,终于…

分布式集群——搭建Hadoop环境以及相关的Hadoop介绍

系列文章目录 分布式集群——jdk配置与zookeeper环境搭建 分布式集群——搭建Hadoop环境以及相关的Hadoop介绍 文章目录 前言 一 hadoop的相关概念 1.1 Hadoop概念 补充:块的存储 1.2 HDFS是什么 1.3 三种节点的功能 I、NameNode节点 II、fsimage与edits…

国产工业软件的挑战与机遇:风口是否还在燃烧?

随着智能制造与数字化转型等新型工业理念的推广,工业软件在工业领域中的地位日益重要。在这个过程中,国产工业软件也迎来了新的发展机遇。然而,对于国产工业软件而言,是否存在着发展的“风口”?今天,我们将…

【C++技能树】继承概念与解析

Halo,这里是Ppeua。平时主要更新C,数据结构算法,Linux与ROS…感兴趣就关注我bua! 继承 0. 继承概念0.1 继承访问限定符 1. 基类和派生类对象赋值兼容转换2. 继承中的作用域3. 派生类中的默认成员函数4.友元5.继承中的静态成员6.菱…

如何飞速成为开源贡献者(Contributor)

如何飞速成为开源贡献者Contributor 一、环境信息1.1 硬件信息1.2 软件信息 二、Git安装2.1 Git介绍2.2 Git下载安装 三、开源项目选定四、GitHub参与开源流程4.1 Fork项目4.2 SSH配置4.2.1 为什么要配置SSH4.2.2 如何配置SSH 4.3 Clone项目4.4 IDEA关联4.5 PR生成4.6 PR提交 一…

STM32f103入门(9)编码器接口测速

TIM3 PA6 PA7 上拉输入 原理上也是PWM捕获输入 捕获两个输入 我们用中断处理读取CNT的值 读取完将CNT置0 这样我们就得到了旋转编码器的速度/s 中断配置代码 #include "stm32f10x.h" // Device headervoid Timer_Init(void) {RCC_APB1PeriphClockC…

SWAT-MODFLOW地表水与地下水耦合

耦合模型被应用到很多科学和工程领域来改善模型的性能、效率和结果,SWAT作为一个地表水模型可以较好的模拟主要的水文过程,包括地表径流、降水、蒸发、风速、温度、渗流、侧向径流等,但是对于地下水部分的模拟相对粗糙,考虑到SWAT…

com.google.guava:guava 组件安全漏洞及健康分析

组件简介 维护者google组织许可证类型Apache-2.0首次发布2010 年 4 月 26 日最新发布时间2023 年 8 月 1 日GitHub Star48189GitHub Fork10716依赖包28,694依赖存储库219,576 Guava 是 Google 的一组核心 Java 库,其中包括新的集合类型(例如 multimap 和…

Web安全——穷举爆破上篇(仅供学习)

Web安全 一、概述二、常见的服务1、burpsuite 穷举后台密码2、burpsuite 对 webshell 穷举破解密码3、有 token 防御的网站后台穷举破解密码3.1 burpsuite 设置宏获取 token 对网站后台密码破解3.2 编写脚本获取token 对网站后台密码破解 4、针对有验证码后台的穷举方法4.1 coo…

ElasticSearch安装为Win11服务

在windows的环境下操作是Elasticsearch,并且喜欢使用命令行 ,启动时通过cmd直接在elasticsearch的bin目录下执行elasticsearch ,这样直接启动的话集群名称会默elasticsearch,节点名称会随机生成。 停止就直接在cmd界面按CtrlC 其实我们也可以将elasticse…

一篇文章教会你什么是二叉搜索树

二叉搜索树 二叉搜索树概念二叉搜索树操作1.二叉搜索树的查找2.二叉搜索树的插入3.二叉搜索树的删除4.二叉搜索树的遍历 二叉搜索树的实现1.二叉搜索树节点结构2.二叉搜索树类3.二叉搜索树的构造及析构4.二叉搜索树的拷贝构造及赋值重载5.二叉搜索树插入6.二叉搜索树查找7.二叉…

必读干货!独立站新手卖家常见十大问题解答

新手卖家入局跨境电商独立站,会考虑到很多问题,从网站到产品再到售卖最终的发货。而且卖家普遍对独立站存在认知不全的问题,门槛高、推广难、转化难是最初印象。 那独立站该怎么开始,如何下手?今天整理并解答独立站新…