升级Android Studio Canary11后Java项目build.gradle变为kts无法加依赖
问题原因
你的情况是因为Android Studio Canary 11新建项目时默认启用了Kotlin DSL(.kts)构建脚本,替代了传统的Groovy DSL(.gradle)。两种脚本的语法规则不同,你之前习惯的Groovy依赖写法在KTS里无法识别,导致添加Navigation组件依赖失败。
解决方法
你有两种方式来添加Navigation组件依赖,任选其一即可:
方式1:直接在KTS脚本中声明依赖
将你原本的Groovy风格依赖代码,转换成Kotlin语法后,添加到app模块的build.gradle.kts的dependencies块中:
修改后的dependencies块示例:
dependencies { // 原有依赖保留 implementation(libs.appcompat) implementation(libs.material) implementation(libs.constraintlayout) implementation(libs.firebase.auth) implementation(libs.firebase.database) implementation(libs.firebase.firestore) implementation(libs.firebase.storage) testImplementation(libs.junit) androidTestImplementation(libs.androidx.test.ext.junit) androidTestImplementation(libs.espresso.core) // 添加Navigation组件依赖(KTS语法) val nav_version = "2.7.5" implementation("androidx.navigation:navigation-fragment:$nav_version") implementation("androidx.navigation:navigation-ui:$nav_version") }
方式2:使用版本目录(更规范的KTS写法)
Android Studio现在推荐使用gradle/libs.versions.toml来统一管理依赖版本,步骤如下:
- 打开项目根目录下的
gradle/libs.versions.toml文件 - 在
[versions]区块中添加Navigation的版本号:
[versions] # 原有版本保留,新增以下行 navigation = "2.7.5"
- 在
[libraries]区块中添加Navigation组件的依赖别名:
[libraries] # 原有依赖保留,新增以下两行 androidx-navigation-fragment = { group = "androidx.navigation", name = "navigation-fragment", version.ref = "navigation" } androidx-navigation-ui = { group = "androidx.navigation", name = "navigation-ui", version.ref = "navigation" }
- 回到app模块的
build.gradle.kts,在dependencies块中引用这些别名:
dependencies { // 原有依赖保留 implementation(libs.appcompat) implementation(libs.material) implementation(libs.constraintlayout) implementation(libs.firebase.auth) implementation(libs.firebase.database) implementation(libs.firebase.firestore) implementation(libs.firebase.storage) testImplementation(libs.junit) androidTestImplementation(libs.androidx.test.ext.junit) androidTestImplementation(libs.espresso.core) // 引用Navigation组件依赖 implementation(libs.androidx.navigation.fragment) implementation(libs.androidx.navigation.ui) }
额外说明
项目级的build.gradle.kts无需修改,Google Services插件的配置已经符合KTS语法要求。
内容的提问来源于stack exchange,提问作者Ukeme Elijah
相关产品推荐
相关产品推荐

