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
相关推荐
00后程序员张16 小时前
对比 Ipa Guard 与 Swift Shield 在 iOS 应用安全处理中的使用差异
android·开发语言·ios·小程序·uni-app·iphone·swift
悠哉清闲18 小时前
不同车型drawable不同
android·开发语言
00后程序员张21 小时前
在 iOS 设备上同时监控 CPU、GPU 与内存的方法
android·ios·小程序·https·uni-app·iphone·webview
测试_AI_一辰21 小时前
项目实践笔记 9:打卡/日报Agent项目Bug 修改与稳定性收口(v1.0)
android·开发语言·人工智能·功能测试·ai编程·ab测试
马 孔 多 在下雨21 小时前
Kotlin协程进阶王炸之作-Kotlin的协程到底是什么
android·开发语言·kotlin
冬奇Lab21 小时前
【Kotlin系列15】多平台开发实战:一次编写,多端运行
android·开发语言·kotlin
Dxy123931021621 小时前
告别默认排序:MySQL自定义排序的“炼金术”
android·数据库·mysql
请叫我大虾1 天前
发现一个jdk中ArrayList的小BUG
android·java·bug
一起养小猫1 天前
Flutter for OpenHarmony 实战:双控制系统实现(按钮+键盘)
android·flutter·计算机外设·harmonyos
_李小白1 天前
【Android 美颜相机】第十八天:GPUImageChromaKeyBlendFilter 解析
android·数码相机