【问题标题】:How to solve error: app:checkDebugAarMetadata如何解决错误:app:checkDebugAarMetadata
【发布时间】:2021-12-29 00:18:03
【问题描述】:

我正在尝试按照此答案中提到的步骤添加 google_mobile_ads,版本 1.0.0:https://stackoverflow.com/a/67883550/13240914,但是当我在调试模式下运行应用程序时,我收到此错误:

Execution failed for task ':app:checkDebugAarMetadata'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.CheckAarMetadataWorkAction
   > 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.work:work-runtime:2.7.0.
     AAR metadata file: /Users/mydata/.gradle/caches/transforms-2/files-2.1/6ca6bfbb6ed79157a08fdd6548cc9e4d/work-runtime-2.7.0/META-INF/com/android/build/gradle/aar-metadata.properties.

有什么办法可以解决这个问题吗? 这是 android/app/build.gradle https://gist.github.com/wahyu-handayani/025cbb7c538196cf91e6629ac668954f

【问题讨论】:

标签: android flutter gradle


【解决方案1】:

在依赖项的 AAR 元数据 (META-INF/com/android/build/gradle/aar-metadata.properties) 中指定的 minCompileSdk (31) 大于此模块的 compileSdkVersion (android-30)。

出现问题是因为在依赖项androidx.work:work-runtime:2.7.0 中需要最低 SDK 版本 31 才能运行。可以有两种解决方案:

  1. 使用此依赖项的旧版本,最好是 2.6.0
  2. 在 app\build.gradle 文件中,将属性 compileSdkVersion 30 更改为 compileSdkVersion 31。请务必先从 SDK 管理器下载 SDK 版本 31!

【讨论】:

  • 嗨,我已将 compileSdkVersion 30 修改为 compileSdkVersion 31,但我不知道如何编辑 androidx.work:work-runtime:2.7.0 因为当我查看我的 gradle 时,没有类似 androidx.work:work-runtime:2.7.0
  • 好的,如果存在使用工作运行时依赖项的依赖项,请发布您的部门列表
  • 我刚刚编辑了我的问题,你要不要看一下
  • 顺便说一下,如果您的项目现在以 SDK 版本 31 为目标,它应该可以成功运行,我列出了 2 个解决方案,任何人都可以使用 :)。如果仍然存在,请发布错误
  • 现在我仍在尝试调试应用程序,安装应用程序需要很长时间,但我也尝试安装 apk 发布版本,并且发生突然关闭(强制关闭)之类的事情
【解决方案2】:

我通过强制我的保护中的所有依赖项使用androidx.work:work-runtime:2.6.0 解决了这个问题,正如this answer 所建议的那样,因为我没有直接在我的保护中直接使用这个依赖项。为此,请打开 ./android/app/build.gradle 文件并添加:

configurations.all {
    resolutionStrategy { force 'androidx.work:work-runtime:2.6.0' }
}

在android/defaultConfig里面,如:

android {
  ...
  defaultConfig {
    configurations.all {
    resolutionStrategy { force 'androidx.work:work-runtime:2.6.0' }
    }
  ...
  }
}

然后,打开 ./android/build.gradle 文件并将 kotlin 版本更改为 1.4.32,如下所示:

buildscript {
  ext.kotlin_version = '1.4.32'
}

在此之后,如果您遇到与 .dex 文件相关的错误,例如:Cannot fit requested classes in a single dex file.,请确保通过添加在 app/build.gradle 文件中启用 multidex

defaultConfig {
    ....
    multiDexEnabled true
}

dependencies {
    ....
    implementation 'com.android.support:multidex:2.0.1'
}

(如this StackOverflow answer 所述)。

【讨论】:

    猜你喜欢
    • 2022-11-11
    • 1970-01-01
    • 1970-01-01
    • 2018-06-30
    • 2012-02-18
    • 2011-08-30
    • 2014-06-13
    • 2011-07-06
    • 2018-09-17
    相关资源
    最近更新 更多