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")
}

上例介绍了使用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")
	 }
}

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

猜你喜欢

转载自blog.csdn.net/kongqwesd12/article/details/132596419