Android应用构建失败:依赖androidx.work:work-runtime:2.7.0-beta01的minCompileSdk不匹配
问题根因
该错误是由于引入的androidx.work:work-runtime:2.7.0-beta01依赖要求最低编译SDK版本为31,而当前项目的编译SDK版本仅为30,版本不匹配导致编译阻断。
检查AAR元数据值时发现一个或多个问题:
某依赖的AAR元数据(META-INF/com/android/build/gradle/aar-metadata.properties)中指定的minCompileSdk (31),高于当前模块的compileSdkVersion (android-30)。涉及依赖:androidx.work:work-runtime:2.7.0-beta01。
解决方案
以下方案按推荐优先级排序:
- 方案1:升级项目compileSdk版本到31(最推荐,无兼容性隐患)
打开项目模块级build.gradle文件(通常是app目录下的build.gradle),修改android配置块下的编译SDK版本:
修改完成后同步Gradle即可正常编译。android { // 旧版Android Gradle Plugin写法 compileSdkVersion 31 // 新版Android Gradle Plugin(7.0+)写法,二选一即可 compileSdk 31 defaultConfig { // minSdkVersion、targetSdkVersion不需要修改,保持原有值即可 } } - 方案2:降级work-runtime依赖到兼容compileSdk 30的版本
若暂时不想升级编译SDK,可以把work-runtime版本降到2.6.0,该版本的minCompileSdk要求为30,和当前项目匹配。修改依赖声明即可:
如果存在其他间接依赖引入高版本work-runtime的情况,可以强制锁定版本,在模块级build.gradle的android块外添加以下配置:dependencies { // 把原有2.7.0-beta01版本号替换为2.6.0 implementation "androidx.work:work-runtime:2.6.0" }configurations.all { resolutionStrategy { force "androidx.work:work-runtime:2.6.0" } } - 方案3:临时屏蔽AAR元数据检查(应急使用,不建议长期用)
如果是临时调试需要快速编译,可以在项目根目录的gradle.properties文件中添加以下配置,跳过minCompileSdk检查:
注意该方案仅为绕过检查的临时手段,可能存在潜在兼容性风险,不建议在正式发布版本中使用。android.disableAarMetadataChecks=true
内容的提问来源于stack exchange,提问作者FH Robin
相关产品推荐
相关产品推荐

