依赖AAR元数据minCompileSdk(31)高于模块compileSdkVersion(android-30)如何解决
报错原因
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.
核心问题为依赖库androidx.core:core-ktx:1.7.0-alpha02要求最低编译SDK版本为31,当前项目模块配置的compileSdkVersion为30,版本不匹配导致构建失败。
解决方案
- 方案1(推荐):升级项目编译SDK版本到31
升级compileSdk不会影响App运行兼容性,无需修改minSdk和targetSdk配置,只需要修改模块级build.gradle文件(对应app模块下的gradle配置文件):
android { // 将原有compileSdk 30修改为31即可 compileSdk 31 defaultConfig { // minSdk、targetSdk可保持原有配置不变,无需改动 minSdk 21 targetSdk 30 // 其他配置... } // 其他配置... }
- 方案2:强制锁定core-ktx到兼容30的版本
如果暂时不需要升级compileSdk,可以指定androidx.core:core-ktx使用1.6.x及以下的稳定版本,该版本区间的minCompileSdk为30,可适配当前编译配置。
如果是直接依赖该库,直接修改依赖声明即可:
dependencies { // 替换原有core-ktx依赖的版本号为1.6.0 implementation 'androidx.core:core-ktx:1.6.0' // 其他依赖... }
如果是第三方依赖间接引入了高版本core-ktx,可在模块级build.gradle文件中添加全局版本强制锁定规则:
configurations.all { resolutionStrategy { force 'androidx.core:core-ktx:1.6.0' } } android { // 原有配置... }
- 方案3(临时绕开,不推荐长期使用):禁用minCompileSdk检查
可在项目根目录的gradle.properties文件中添加如下配置,临时抑制版本不匹配的报错,该方案可能存在编译失败或运行异常的风险,仅推荐临时调试使用:
android.suppressUnsupportedCompileSdk=31
内容的提问来源于stack exchange,提问作者Radhio Office
相关产品推荐
相关产品推荐

