【问题标题】:Android - App not running. Error : The minCompileSdk specified in a dependency's AAR metadata is greater than this module's compileSdkVersion [duplicate]Android - 应用程序未运行。错误:依赖项的 AAR 元数据中指定的 minCompileSdk 大于此模块的 compileSdkVersion [重复]
【发布时间】:2021-11-02 08:15:40
【问题描述】:

一周前,该应用程序运行良好,但突然(没有更新任何内容)该应用程序没有运行。

当我尝试运行应用程序时遇到此错误

在 a 中指定的 minCompileSdk (31) 依赖项的 AAR 元数据(META-INF/com/android/build/gradle/aar-metadata.properties) 大于此模块的 compileSdkVersion (android-30)。 依赖:androidx.work:work-runtime:2.7.0-beta01。 AAR 元数据文件:/home/kishan/.gradle/caches/transforms-2/files-2.1/af85edd7f0482dfc2b2e0c9a0519784e/work-runtime-2.7.0-beta01/META-INF/com/android/build/gradle/aar-metadata。属性。

这是相同的屏幕截图:

从我的应用级 gradle 文件中,我可以看到我有

compileSdkVersion 30targetSdkVersion 30

不确定是什么导致了这个问题。

任何帮助将不胜感激。 谢谢!

【问题讨论】:

标签: android android-studio gradle build


【解决方案1】:

好的,所以我终于解决了这个问题。

问题是由于依赖 androidx.work:work-runtime 但我想首先提一下,我并没有直接在我的项目中使用该依赖项(未添加到我的应用级别 gradle 中),可能是其他一些依赖项在内部使用。

所以我所做的就是通过添加这个来强制降级它的版本

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

里面

android {
 defaultConfig {
   //here
 }
}

它解决了我的问题。

【讨论】:

    【解决方案2】:

    离开targetSdkVersion 30,但将compileSdkVersion改为31。

    工作管理器测试版可能也使用 Android SDK 31。

    当您编译 Android SDK 30 时,工作管理器无法编译,因为它使用 Android SDK 31,因此使用了 Android SDK 30 中不存在的新 API。

    编辑

    Work Manager 2.7.0 explicitly warns 的发行说明,此版本及更高版本仅与 API 31 兼容。

    所以你的选择是:

    • 使用 2.6.0,它编译 API 30。
    • 编译 API 31 并尝试处理其他损坏的依赖项 - 也许 Stack Overflow 可以帮助您?

    【讨论】:

    • 还有其他解决方案吗?我不能这样做,因为这样做后,很少有依赖关系破裂。
    • Android 开发者明确警告work-runtime:2.7.0-alpha3 或更高版本仅与 API 31 兼容。我正在更新我的答案
    猜你喜欢
    • 2022-11-12
    • 2023-04-05
    • 2022-09-23
    • 1970-01-01
    • 2017-05-14
    • 2021-11-01
    • 1970-01-01
    • 2021-11-01
    • 1970-01-01
    相关资源
    最近更新 更多