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


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

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

    1、版本配置

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

    dependencies {
        // 导入compose bom
        implementation(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")
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    上例介绍了使用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
    
    • 1
    • 2

    然后又报错;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"
    
    • 1
    • 2
    • 3

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

    最新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")
    	 }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

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

  • 相关阅读:
    【深度学习 pytorch yolov 单机多卡的训练命令方式和注意事项
    苹果Audio Classifier使用问题
    算法通关村-----K个一组反转链表
    Apache HTTPD 漏洞复现
    偶数科技发布实时湖仓数据平台Skylab 5.3版本
    Docker镜像与容器的工作原理
    MySQL(4)
    给你的 SpringBoot 工程部署的 jar 包瘦瘦身吧!
    【k8s源码篇之Informer篇4】关于 Informer 的一些困惑点
    竹纤维家装元宇宙:虚拟空间与绿色生活的融合
  • 原文地址:https://blog.csdn.net/kongqwesd12/article/details/132596419