错误信息:
在依赖的AAR元数据中指定的minCompileSdk (31)
(META-INF/com/android/build/gradle/aar-metadata.properties)更大
而不是这个模块的compileSdkVersion (android-30)。依赖:
androidx.core: core-ktx: 1.7.0-alpha02。
AAR元数据文件:
C:\Users\ mohammad.zeeshan1.gradle \ transforms-2 \ \缓存文件- 2.1 \ a20beb0771f59a8ddbbb8d416ea06a9d \ jetified-core-ktx-1.7.0-alpha02 android \ meta - inf \ com \ \制造\ gradle \ aar-metadata.properties。
我在几天前工作的一个反应原生项目上遇到了这个问题,突然我得到了这个错误:
* What went wrong:
Execution failed for task ':app:checkDevDebugAarMetadata'.
> Multiple task action failures occurred:
> 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.core:core-ktx:1.7.0-alpha02.
AAR metadata file: /Users/me/.gradle/caches/transforms-2/files-2.1/ed22ee8b86d25659bbef1e9ee203b75c/jetified-core-ktx-1.7.0-alpha02/META-INF/com/android/build/gradle/aar-metadata.properties.
> 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.core:core:1.7.0-alpha02.
AAR metadata file: /Users/me/.gradle/caches/transforms-2/files-2.1/23234efc7e9de9bfe6a3fea85a6072ef/core-1.7.0-alpha02/META-INF/com/android/build/gradle/aar-metadata.properties.
在阅读错误消息后,我明白问题出在androidx上。core:core-ktx,所以我搜索了更多关于它的信息,发现一个新版本刚刚发布于去年9月01 https://androidx.tech/artifacts/core/core-ktx/,这是https://androidx.tech/artifacts/core/core-ktx/1.7.0-alpha02,其中有targetSdkVersion = 31
我运行grep -r "androidx。“node_modules和发现我有一个依赖,有实现”androidx。core:core-ktx:+”,它将在我安装应用程序时安装最新版本。我不能只是更新到31,因为它似乎打破了我的一些依赖的代码,我会得到:
unrecognized Attribute name MODULE (class com.sun.tools.javac.util.SharedNameTable$NameImpl)
我真的不知道怎么修,也找不到任何铅,很可能是因为它是新的。
作为解决方案,在文件android/app/build.gradle
在android{}块之前添加以下块。
configurations.all {
resolutionStrategy { force 'androidx.core:core-ktx:1.7.0-alpha01' }
}
这样做之后,它对我有用。它会强制所有安卓系统。Core: Core -ktx为1.7.0-alpha01