Android Studio中Version Catalog报“from方法仅能调用一次”错误排查
问题
使用Android Studio Iguana 2023.2.1 Patch 2配置Version Catalog时,Gradle同步报错:
Invalid catalog definition:
- Problem: In version catalog libs, you can only call the 'from' method a single time.
确认仅调用了一次from方法,当前settings.gradle内容:
pluginManagement { repositories { google { content { includeGroupByRegex("com\\.android.*") includeGroupByRegex("com\\.google.*") includeGroupByRegex("androidx.*") } } mavenCentral() gradlePluginPortal() } } dependencyResolutionManagement { versionCatalogs { libs { from(files("gradle/libs.versions.toml")) } } repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() } } rootProject.name = "Emvoliasmoi" include ':app', ':jsch-0.1.55', ':scan'
gradle/libs.versions.toml内容:
[versions] kotlin="1.9.24" realm="1.16.0" androidApplication = "7.3.0" appCompat = "1.1.0" constraintLayout="2.1.4" lifecycle = "2.3.1" material = "1.11.0" retrofit = "2.9.0" gson="2.8.6" work = "2.3.4" [libraries] appCompat = "androidx.appcompat:appcompat:$appCompat" constraintLayout = "androidx.constraintlayout:constraintlayout:$constraintLayout" lifecycleViewmodel = "androidx.lifecycle:lifecycle-viewmodel:$lifecycle" lifecycleLivedata = "androidx.lifecycle:lifecycle-livedata:$lifecycle" lifecycleCommonJava8 = "androidx.lifecycle:lifecycle-common-java8:$lifecycle" material = "com.google.android.material:material:$material" retrofit = "com.squareup.retrofit2:retrofit:$retrofit" converter-gson = "com.squareup.retrofit2:converter-gson:$retrofit" workRuntime = "androidx.work:work-runtime:$work" [plugins] androidApplication = { id = "com.android.application", version.ref = "androidApplication" } kotlinAndroid = {id = "org.jetbrains.kotlin.android", version.ref="kotlin"} realm = {id ="id.realm.kotlin", version.ref="realm"}
可能的原因与解决方法
- 检查重复的Catalog定义:排查项目中是否存在其他配置文件(比如
settings.gradle.kts、模块级的settings配置),有没有重复对libscatalog调用from方法。部分多模块项目可能会在子模块中意外重复定义。 - 清理Gradle缓存:
- 执行命令行指令:
./gradlew cleanBuildCache(Windows环境用gradlew cleanBuildCache) - 手动删除项目根目录下的
.gradle文件夹,再通过Android Studio的File → Invalidate Caches... → Invalidate and Restart清理IDE缓存
- 执行命令行指令:
- 校验Toml文件语法:虽然当前Toml代码看起来正常,但隐形字符、错误的引号格式(比如误输入中文引号)可能导致解析异常,间接触发该错误。可以逐行检查引号、换行和变量引用,确保语法完全符合Toml规范。
- 调整Gradle/AGP版本兼容性:Android Studio Iguana对应的推荐Gradle版本为8.2.x,而你使用的AGP版本是7.3.0,版本不匹配可能引发异常。尝试升级AGP到8.2.0左右的版本,同时调整Kotlin版本与之匹配(比如Kotlin 1.9.20+)。
内容的提问来源于stack exchange,提问作者Christoforos
相关产品推荐
相关产品推荐

