Android Studio编译Gradle项目时AAR元数据检查报错如何解决
报错原因
这个错误和缓存损坏无关,清理缓存自然无效,本质是AGP 7.0开始新增的AAR元数据校验规则触发了版本不匹配拦截:
- 你当前模块配置的
compileSdkVersion为31(对应Android 12) - 构建时拉取到的
androidx.core:core:1.9.0-alpha05、androidx.core:core-ktx:1.9.0-alpha05两个依赖,在自身AAR元数据中声明的最低要求编译SDK版本为32(对应Android 12L),低于这个版本编译时AGP会直接中断构建抛出你看到的错误。
这两个alpha版的core库是Android 12L预览阶段发布的测试版,本身就要求匹配32的编译SDK,出现这个问题要么是你主动引用了这个测试版依赖,要么是其他三方库传递依赖拉到了这个版本。
解决方案
你可以根据项目实际情况二选一:
方案一:升级编译SDK版本(官方推荐)
这是最稳妥的解决方式,后续高版本androidx库都会逐步要求更高的compileSdk版本,且升级compileSdk不会影响app在低版本安卓系统上的运行:
- 打开app模块下的
build.gradle文件 - 在
android配置块中修改compileSdk版本:
android { compileSdk 32 // 把原有的31修改为32,7.0+版本AGP支持直接写compileSdk不带Version后缀 // 其余配置(包括minSdk、targetSdk)不需要改动 }
- 点击Sync Now同步Gradle配置,重新构建即可。
方案二:锁定core依赖为低版本稳定版(暂不升级compileSdk时使用)
如果暂时不想把compileSdk升到32,可以把core相关依赖降到要求minCompileSdk不高于31的稳定版本,注意正式项目尽量不要用alpha/beta这类测试版依赖,避免出现不必要的兼容问题:
- 如果是你主动在dependencies块中声明了1.9.0-alpha05版本的core/core-ktx,直接把版本号改成
1.8.0(适配compileSdk 31的最新稳定版)即可。 - 如果是其他三方库传递引入的高版本测试版core,在
build.gradle中添加全局强制版本配置,锁死core的版本:
configurations.all { resolutionStrategy { // 强制指定core相关依赖的版本,避免传递拉取高版本alpha版 force 'androidx.core:core:1.8.0' force 'androidx.core:core-ktx:1.8.0' } }
修改完成后同步Gradle,重新构建即可通过校验。
内容的提问来源于stack exchange,提问作者Drics
相关产品推荐
相关产品推荐

