我正在使用版本目录来有效地共享 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" }
Run Code Online (Sandbox Code Playgroud)
对于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.
Run Code Online (Sandbox Code Playgroud)
虽然文档明确说明了 toml 文件中支持的插件的顶级名称
经过一番挖掘和探索一些开源项目后,我找到了上述问题的解决方案。最初,我使用的distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-bin.zip是我的 Gradle 版本,gradle-wrapper.properties但为了解决这个问题,我将 Gradle 版本更新为7.3.2
因此更改分发 URL 来distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.2-all.zip解决我的问题
| 归档时间: |
|
| 查看次数: |
15287 次 |
| 最近记录: |