在Gradle版本目录文件libs.version.toml插件名称无法识别



我使用版本目录在Android项目中的不同Gradle模块之间有效地共享依赖关系。

我正在使用以下libs.versions.toml文件

[versions]
room = "2.4.0"
gradlePlugins-agp = "7.0.4"
# Gradle plugins
gradlePlugins-hilt = "2.40.5"
[libraries]
androidx-room-common = { module = "androidx.room:room-common", version.ref = "room" }
androidx-room-compiler = { module = "androidx.room:room-compiler", version.ref = "room" }
androidx-room-ktx = { module = "androidx.room:room-ktx", version.ref = "room" }
hilt-android = { module = "com.google.dagger:hilt-android", version.ref = "gradlePlugins-hilt" }
hilt-kapt = { module = "com.google.dagger:hilt-compiler", version.ref = "gradlePlugins-hilt" }
hilt-plugin = { module = "com.google.dagger:hilt-android-gradle-plugin", version.ref = "gradlePlugins-hilt" }
[plugins]
android-application = { id = "com.android.application", version.ref = "gradlePlugins-agp" }

对于上面的libs.versions.toml文件,在构建应用程序时,Gradle构建失败,出现以下错误

org.gradle.api.InvalidUserDataException: Invalid TOML catalog definition:
  - Problem: In version catalog libs, unknown top level elements [plugins].
* Exception is:
java.lang.RuntimeException: org.gradle.api.InvalidUserDataException: Invalid TOML catalog definition:
  - Problem: In version catalog libs, unknown top level elements [plugins].
    
    Reason: TOML file contains an unexpected top-level element.
    
    Possible solution: Make sure the top-level elements of your TOML file is one of 'bundles', 'libraries', 'metadata' or 'versions'.
    
    Please refer to https://docs.gradle.org/7.0.2/userguide/version_catalog_problems.html#toml_syntax_error for more details about this problem.

虽然文档清楚地说明了toml文件中支持插件的顶级名称

经过一些开源项目的挖掘和探索,我找到了上述问题的解决方案。最初,我在gradle-wrapper.properties中使用distributionUrl=https://services.gradle.org/distributions/gradle-7.0.2-bin.zip作为我的Gradle版本,但为了解决这个问题,我将Gradle版本更新为7.3.2

因此,将分发URL更改为distributionUrl=https://services.gradle.org/distributions/gradle-7.3.2-all.zip为我修复了问题

最新更新