升级Android Studio后项目因AAR元数据检查错误无法编译
报错原因
你升级的部分AndroidX官方依赖包,自身声明了最低要求编译SDK版本为31,而你当前项目配置的compileSdkVersion为30,低于依赖要求的版本。AGP(Android Gradle插件)7.0及以上版本新增了AAR元数据校验机制,检测到版本不匹配就会抛出该编译错误。
解决方案
方案1(推荐):升级项目编译SDK版本
直接将项目的编译SDK升级到31即可完全解决该问题,升级compileSdkVersion不会影响App在低版本安卓设备上的运行(只要你保持minSdkVersion不变),也不需要修改现有业务代码。
修改你的build.gradle中android块的配置即可:
android { // 把原来的30改成31 compileSdkVersion 31 defaultConfig { applicationId "com.codename1.myapp1" minSdkVersion 21 // targetSdkVersion也可以同步升级到31,不影响兼容性 targetSdkVersion 31 versionCode 22 versionName "2.2.0.0" } // 剩余配置保持不变 }
修改后同步Gradle即可正常编译。
方案2:降级依赖库到兼容compileSdk 30的版本
如果你暂时不想升级编译SDK,可以把相关依赖降级到不需要minCompileSdk 31的版本,参考依赖配置如下:
dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) // 降级core到1.6.0 implementation 'androidx.core:core:1.6.0' // 降级appcompat到1.3.1 implementation 'androidx.appcompat:appcompat:1.3.1' // 降级material到1.3.0 implementation 'com.google.android.material:material:1.3.0' implementation 'androidx.gridlayout:gridlayout:1.0.0' implementation 'androidx.constraintlayout:constraintlayout:2.1.2' implementation 'com.google.firebase:firebase-messaging:23.0.0' // 强制指定传递依赖的lifecycle版本,避免自动拉取2.4.0等高版本 configurations.all { resolutionStrategy.force 'androidx.lifecycle:lifecycle-process:2.3.1' resolutionStrategy.force 'androidx.lifecycle:lifecycle-runtime:2.3.1' } }
内容的提问来源于stack exchange,提问作者Sethi
相关产品推荐
相关产品推荐

