AndroidStudio - TOML

一、概念

|-----------|-----------------------|
| versions | 声明依赖项和插件的版本,然后引用这些变量。 |
| libraries | 声明依赖项的别名 |
| bundles | 声明依赖项的组名 |
| plugins | 声明插件 |

  • 属性名单词之间用连词符号(而不是驼峰命名法),调用起来每个连词符号通过点调用,这样方便分类命名。
  • 只有libraries节点中的属性名可以直接调用,其它节点调用起来是 libs.节点名.属性称(因此其它节点可以出现重名)。

二、单个依赖

原来

Groovy 复制代码
dependencies {
    implementation 'androidx.core:core-ktx:1.9.0'
}

现在

Kotlin 复制代码
[versions]
demo = "1.9.0"
 
[libraries]
#写法一
demo-compiler1 = "com.example:demo-compiler:1.9.0"
#写法二(推荐)
demo-compiler2 = { module = "com.example:demo-compiler", version = "1.9.0" }
#写法三
demo-compiler3 = { module = "com.example:demo-compiler", version.ref = "demo" }
#写法四
demo-compiler4 = { group = "com.example", name = "demo-compiler", version = "1.9.0" }
#写法五
demo-compiler5 = { group = "com.example", name = "demo-compiler", version.ref = "demo" }
Kotlin 复制代码
dependencies {
    implementation(libs.demo.compiler1)
}

三、群组

Kotlin 复制代码
[libraries]
compose-lifecycle = { ... }
compose-activity = { ... }
compose-viewmodel = { ... }

[bundles]
compose = ["compose-lifecycle", "compose-activity", "compose-viewmodel"]
Kotlin 复制代码
dependencies {
    implementation(libs.bundles.compose)
}

四、插件

原来

Groovy 复制代码
// 项目
plugins {
   id("com.android.application") version "7.4.1" apply false
}
 
// 模块
plugins {
   id("com.android.application")    //聚合写法
}
apply plugin: 'com.android.library'    //单个写法

现在

Kotlin 复制代码
[versions]
androidGradlePlugin = "7.4.1"
 
[plugins]
android-application = { id = "com.android.application", version.ref = "androidGradlePlugin" }
Kotlin 复制代码
// 项目
plugins {
   alias(libs.plugins.android.application) apply false
}
 
// 模块
plugins {
   alias(libs.plugins.android.application)    //聚合写法
}
apply plugin: libs.plugins.android.library    //单个写法

五、历史遗留问题

仅针对老项目,新版AndroidStudio默认就使用TOML。

5.1 文件创建

在项目上右键→New→File→Vewsion Catalogs,取名 libs,会自动加后缀 .version.toml(没有就直接创建文件取完整名称)。在 settings.gradle 中的 <dependencyResolutionManagement> 标签下使用 <versionCatalogs> 引入所创建的文件。

5.2 无法升级 AGP 问题

将 Project 的 build.gradle 中 application 和 library 还原成默认书写方式。

Groovy 复制代码
id 'com.android.application' version '8.3.0' apply false
id 'com.android.library' version '8.3.0' apply false
相关推荐
麻瓜生活睁不开眼6 小时前
Android16修改全局桌面视图边框四直角显示为弧边圆角
android·java·深度学习
AFinalStone9 小时前
Android 7系统休眠唤醒(六)唤醒全链路
android·电源管理·休眠唤醒
雨白10 小时前
深入理解 Kotlin 协程 (九):互通有无,解构 Channel 缓冲策略与底层无锁机制
android·kotlin
灯塔@kuaidao11 小时前
平台交叉编译名词解释与基础流程
android
__Witheart__12 小时前
3568 Android otg模式下adb热拔插不识别
android·adb·rockchip
明天…ling14 小时前
Upload-Labs (Pass1-Pass21) 完整通关思路与源码分析
android·网络安全·渗透测试·burpsuite·upload-labs·文件上传绕过·靶场复现
__Witheart__14 小时前
3568 Android ntp校时使用
android·rockchip
wddptwd2815 小时前
android studio 报错怎么处理 java.lang.NullPointerException
android·java·android studio
美狐美颜SDK开放平台16 小时前
直播APP开发,美颜SDK和相机SDK有什么区别?
android·深度学习·数码相机·ios·直播美颜sdk·视频美颜sdk
唐诺17 小时前
Android Open Accessory (AOA) 协议完全解析
android·usb·aoa