如何解决原生Java或Kotlin中的错误" The minCompileSdk (31) specified in a dependency's AAR metadata"?
该错误信息。
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:
C:\Users\mohammad.zeeshan1.gradle\caches\transforms-2\files-2.1\a20beb0771f59a8ddbbb8d416ea06a9d\jetified-core-ktx-1.7.0-alpha02\META-INF\com\android\build\gradle\aar-metadata.properties.
在你的build.gradle(app)
文件中,将compileSdkVersion
和targetSdkVersion
都设置为31
。
android {
compileSdkVersion 31 // <-- This
defaultConfig {
applicationId "com.example.app"
targetSdkVersion 31 // <-- and this too
// ...
}
}
我已经找到了解决办法。在应用程序的Gradle文件中输入上述包的这行代码。
对于Kotlin开发者来说。
configurations.all {
resolutionStrategy { force 'androidx.core:core-ktx:1.6.0' }
}
对于Java开发者来说
configurations.all {
resolutionStrategy { force 'androidx.core:core:1.6.0' }
}
ktx
。resolutionStrategy {force 'androidx.core:core:1.6.0'}
- Zain 2021-09-18
这个问题最常出现在那些声明了
implementation androidx.core:core-ktx:1.7.0-beta01
minCompileSdk
是31,但minSdkVersion
明显更低。
增加你的项目的compileSdk
就足以解决这个问题。不需要重写,甚至不需要改变targetSdk
。
android {
compileSdk 31
...
}
compileSdkVersion
就足以解决这个问题。因此,这是最好的解决方案
- ThinkAndCode 2022-06-29
最后,我可以解决我的问题了。
问题出在哪里呢?
我在一个模块中有以下依赖 -
implementation "androidx.core:core-ktx:+"
但其他模块,包括应用程序模块,都有以下依赖关系
implementation "androidx.core:core-ktx:1.6.0"
转换
implementation "androidx.core:core-ktx:+"
至
implementation "androidx.core:core-ktx:1.6.0"
解决了我的问题。
你需要将你的编译SDK更新到31。它听起来好像目前是设置为30。在你的Gradle文件中,android
块中应该有类似compileSdk
的东西。
把它升到31。如果由于某种原因这是一个问题,你也可以把你的依赖性降低到不需要该编译SDK版本的版本。
我在一个 react-native 项目上遇到了这个问题,几天前还在工作,突然间就出现了这个错误。
* 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.core:core-ktx" node_modules
,发现我有一个依赖关系有implementation "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' }
}
这样做之后,它对我来说是有效的。它将强制所有androidx.core:core-ktx
变成1.7.0-alpha01
。
grep -r "androidx.core:core-ktx" node_modules
,没有得到任何输出。但我仍然得到这个错误。
- Rohit Aggarwal 2021-09-05
androidx.core:core-ktx
,而是由于androidx.browser:browser
。这来自于库react-native-inappbrowser-reborn
,它指定android包的版本为1+。在gradle同步后,androidx.browser
版本1.4.0-alpha01被带入,导致这个错误。这里有一个修复建议 github.com/proyecto26/react-native-inappbrowser/issues/298
- Tin Nguyen 2021-09-18
当使用Jetpack Compose导航时,我遇到这个问题......
我在使用androidx.navigation:navigation-compose:2.4.0-alpha07
所以我通过使用另一个版本解决了这个问题。
`androidx.navigation:navigation-compose:2.4.0-alpha06`
我也遇到了同样的问题,发现问题出在生命周期库上。
我从测试版中改了过来。
androidx.lifecycle:lifecycle-livedata:2.4.0beta1
到当前的稳定版本。
androidx.lifecycle:lifecycle-livedata:2.3.1
检查安卓网站上的版本。