You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何Jetpack Compose依赖在build.gradle.kts中采用libs.X格式?

Android Studio Iguana 依赖声明变更说明

你遇到的implementation(libs.androidx...)不是恶意改动,这是Gradle的**版本目录(Version Catalog)**特性,Android Studio Iguana开始新建项目默认启用这个方式来管理依赖,目的是让版本管理更集中、依赖声明更简洁。

为什么用这种形式?

  • 之前的写法是在依赖里硬编码版本号,分散在各个build文件中,升级时要逐个修改;现在把所有依赖的版本信息集中到一个配置文件里,统一维护,减少重复工作。
  • 这是Gradle 7.4及以上版本支持的官方特性,AS现在默认用它来优化依赖管理流程。

如何查看、修改依赖版本?

版本信息都存在项目根目录的gradle/libs.versions.toml文件里:

  1. 打开这个文件,[versions]块里是所有依赖的版本号,比如coreKtx = "1.12.0";
  2. [libraries]块里是依赖的坐标映射,比如androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" },这里的version.ref就是引用[versions]里的版本值;
  3. 修改版本时,直接改[versions]里对应的数值,所有引用该版本的依赖会自动同步更新。

举个libs.versions.toml的示例片段:

[versions]
coreKtx = "1.12.0"
lifecycleRuntimeKtx = "2.6.2"
composeBom = "2023.08.00"

[libraries]
androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" }
androidx-lifecycle-runtime-ktx = { group = "androidx.lifecycle", name = "lifecycle-runtime-ktx", version.ref = "lifecycleRuntimeKtx" }
androidx-compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "composeBom" }

如何固定特定版本?

如果想给某个依赖单独固定版本,有两种方式:

  • 方式1:在libs.versions.toml中直接指定版本
    把该依赖的version.ref改成具体版本号,比如:
    androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version = "1.12.0" }
    
    这样就不会跟随[versions]里的统一版本更新。
  • 方式2:在build.gradle.kts中强制指定版本
    在依赖声明里添加版本约束,比如:
    implementation(libs.androidx.core.ktx) {
        version { strictly("1.12.0") }
    }
    
    这种方式会强制使用指定版本,即使其他地方有更高版本的依赖也不会覆盖。

新依赖声明(Android Studio Iguana)

dependencies {
    implementation(libs.androidx.core.ktx)
    implementation(libs.androidx.lifecycle.runtime.ktx)
    implementation(libs.androidx.activity.compose)
    implementation(platform(libs.androidx.compose.bom))
    implementation(libs.androidx.ui)
    implementation(libs.androidx.ui.graphics)
    implementation(libs.androidx.ui.tooling.preview)
    implementation(libs.androidx.material3)
    testImplementation(libs.junit)
    androidTestImplementation(libs.androidx.junit)
    androidTestImplementation(libs.androidx.espresso.core)
    androidTestImplementation(platform(libs.androidx.compose.bom))
    androidTestImplementation(libs.androidx.ui.test.junit4)
    debugImplementation(libs.androidx.ui.tooling)
    debugImplementation(libs.androidx.ui.test.manifest)
}

旧依赖声明(1个月前)

dependencies {
    implementation("androidx.core:core-ktx:1.12.0")
    implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.6.2")
    implementation("androidx.activity:activity-compose:1.7.0")
    implementation(platform("androidx.compose:compose-bom:2023.08.00"))
    implementation("androidx.compose.ui:ui")
    implementation("androidx.compose.ui:ui-graphics")
    implementation("androidx.compose.ui:ui-tooling-preview")
    implementation("androidx.compose.material3:material3")
    testImplementation("junit:junit:4.13.2")
    androidTestImplementation("androidx.test.ext:junit:1.1.5")
    androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1")
    androidTestImplementation(platform("androidx.compose:compose-bom:2023.08.00"))
    androidTestImplementation("androidx.compose.ui:ui-test-junit4")
    debugImplementation("androidx.compose.ui:ui-tooling")
    debugImplementation("androidx.compose.ui:ui-test-manifest")
}

内容的提问来源于stack exchange,提问作者RJA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 10:05:21