gpt4 book ai didi

Android/任务 checkDebugAarMetadata 执行失败/执行 CheckAarMetadataWorkAction 时发生故障

转载 作者:行者123 更新时间:2023-12-04 23:37:13 26 4
gpt4 key购买 nike

TL'DR:在 this Android Kotlin libraryupdated from Gradle 5.6.4 to 6.6.1 (提交 d5d8d2)。现在我不能再依赖 aar 来构建项目了。
测试设置
我构建 aar 并将其部署到 mavenLocal ...

$ ./gradlew clean :roadsigns:assemble
$ ./gradlew publishToMavenLocal
...然后在示例 Android app 中引用已部署的库工件模块。首先我添加 mavenLocal()在根 build.gradle 文件中:
allprojects {
repositories {
google()
mavenCentral()
jcenter()
mavenLocal() // <-- Add this
}
}
我引用 mavenLocal()直接依赖:
dependencies {
implementation
// implementation project(":roadsigns")
implementation "info.metadude.kotlin.library.roadsigns:roadsigns:$version"
implementation Libs.kotlinStdlib
// ...
错误
当我构建示例应用程序时,我得到以下 构建错误 :
$ ./gradlew clean assembleDebug

Execution failed for task ':checkDebugAarMetadata'.
> Multiple task action failures occurred:

> A failure occurred while executing com.android.build.gradle.internal.tasks.CheckAarMetadataWorkAction
> A dependency's AAR metadata (META-INF/com/android/build/gradle/aar-metadata.properties) does
not specify an aarFormatVersion value, which is a required value.
Dependency: info.metadude.kotlin.library.roadsigns:roadsigns:4.0.0.
AAR metadata file: /home/USERNAME/.m2/repository/info/metadude/kotlin/library/roadsigns/roadsigns/4.0.0/roadsigns-4.0.0-javadoc.jar.

> A failure occurred while executing com.android.build.gradle.internal.tasks.CheckAarMetadataWorkAction
> A dependency's AAR metadata (META-INF/com/android/build/gradle/aar-metadata.properties) does
not specify an aarFormatVersion value, which is a required value.
Dependency: info.metadude.kotlin.library.roadsigns:roadsigns:4.0.0.
AAR metadata file: /home/USERNAME/.m2/repository/info/metadude/kotlin/library/roadsigns/roadsigns/4.0.0/roadsigns-4.0.0-sources.jar.

> A failure occurred while executing com.android.build.gradle.internal.tasks.CheckAarMetadataWorkAction
> A dependency's AAR metadata (META-INF/com/android/build/gradle/aar-metadata.properties) does
not specify an aarFormatVersion value, which is a required value.
Dependency: info.metadude.kotlin.library.roadsigns:roadsigns:4.0.0.
AAR metadata file: /home/USERNAME/.m2/repository/info/metadude/kotlin/library/roadsigns/roadsigns/4.0.0/roadsigns-4.0.0.aar.
上下文信息
当我尝试使用 Gradle 5.6.4 时,就会出现 没有错误 .
在我使用的 Android Kotlin 库中:
  • digital.wup:android-maven-publish:3.6.3
  • com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.5

  • 我在我的机器上使用 Java 8 (OpenJDK) 并验证在另一台计算机上发生了相同的错误。
    实验
  • 当我使用 Gradle 5 部署库并使用 Gradle 5 或 Gradle 6 构建应用程序时,它在这两种情况下都有效。

  • 问题
    从 Gradle 5 到 Gradle 6 发生了什么变化导致 aar 被破坏(?)
    发现
  • 我查看了 mavenLocal() 中部署的文件:
    ~/.m2/repository/info/metadude/kotlin/library/roadsigns
    └── 路标
    ├── 4.0.0
    │   ├── roadsigns-4.0.0.aar
    │   ├── roadsigns-4.0.0-javadoc.jar
    │   ├── roadsigns-4.0.0.module
    │   ├── roadsigns-4.0.0.pom
    │   └── roadsigns-4.0.0-sources.jar
    └── maven-metadata-local.xml
  • 我比较了使用 Gradle 5 和 Gradle 6 部署的文件。有趣的是,roadsigns-4.0.0.aar文件是二进制等效的。 pom文件不同,但:
    Diff of roadsigns-4.0.0.pom files
  • 还有一个roadsigns-4.0.0.module仅当我使用 Gradle 6 部署时才提交文件。
  • 当我手动 删除"new"do_not_remove: published-with-gradle-metadata使用 Gradle 6 部署的文件的一部分,然后应用程序构建 成功 !问题仍然存在……这是怎么回事?!
  • 最佳答案

    我遇到了很多这样的错误:

    ...
    The minCompileSdk (31) specified in a
    dependency's AAR metadata (META-INF/com/android/build/gradle/aar-metadata.properties)
    is greater than this module's compileSdkVersion (android-30).
    Dependency: androidx.lifecycle:lifecycle-livedata-core:2.4.0.
    AAR metadata file: C:\Users\CUR_USER\.gradle\caches\transforms-3\4e8a32482e233cfbbc450e03aabed8dd\transformed\lifecycle-livedata-core-2.4.0\META-INF\com\android\build\gradle\aar-metadata.properties.
    ...
    我所做的修复它是
  • 打开build.gradle (应用程序)
  • 换安卓。 compileSdk从 30 到 31
  • 换安卓。默认配置。 targetSdk从 30 到 31
  • 文件 -> 使用 Gradle 文件同步项目
  • 关于Android/任务 checkDebugAarMetadata 执行失败/执行 CheckAarMetadataWorkAction 时发生故障,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64945616/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com