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

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

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

1、版本配置

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

kotlin 复制代码
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,配置如下:

kotlin 复制代码
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的证书,命令大家可以参考下:

kotlin 复制代码
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的引用和之前的方式也不一样,这里贴下部分引用:

kotlin 复制代码
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")
	 }
}

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

相关推荐
帅得不敢出门5 小时前
Gradle命令编译Android Studio工程项目并签名
android·ide·android studio·gradlew
Rverdoser21 小时前
Android Studio 多工程公用module引用
android·ide·android studio
hello world smile1 天前
Flutter常用命令整理
android·flutter·移动开发·android studio·安卓
大耳猫2 天前
Android Studio 多工程公用module引用
android·java·kotlin·android studio
xiaoerbuyu12333 天前
单选按钮 带角标
android studio
----云烟----3 天前
如何更改Android studio的项目存储路径
android·ide·android studio
YunFeiDong3 天前
Android Studio打包时不显示“Generate Signed APK”提示信息
android·ide·android studio
----云烟----3 天前
Android Studio各种历史版本
android·ide·android studio
Android 从入门到放弃4 天前
在 Android Studio 上运行 Java 的 main 函数
android·ide·android studio
粤M温同学4 天前
Android Studio插件版本与Gradle 版本对应关系
android·android studio