执行gradlew assembleDebug报错,无法升级compileSdkVersion至31求解决方法
解决':app:checkDebugAarMetadata'执行失败的方案(不升级compileSdkVersion到31)
你的问题源于间接引入的androidx.appcompat:appcompat-resources:1.4.1要求最低compileSdk为31,但项目compileSdk固定为28。以下是无需升级compileSdk的解决方法:
方法1:禁用AndroidX与Jetifier
你的项目依赖旧版com.android.support:appcompat-v7:28.0.3,而androidx.appcompat:appcompat-resources是AndroidX库,通过禁用AndroidX可阻止gradle自动引入该依赖:
- 打开项目根目录的
gradle.properties文件 - 添加或修改以下配置:
android.useAndroidX=false android.enableJetifier=false
方法2:强制指定低版本appcompat-resources
指定一个支持compileSdk 28的appcompat-resources版本(如1.1.0,其minCompileSdk为28),强制gradle使用该版本而非高版本:
在app模块的build.gradle中添加以下配置(可放在android块之后):
configurations.all { resolutionStrategy.force 'androidx.appcompat:appcompat-resources:1.1.0' }
方法3:排除间接引入的appcompat-resources
先通过命令查看依赖树,找到引入androidx.appcompat:appcompat-resources的源头:
./gradlew app:dependencies
找到对应依赖后,在build.gradle的dependencies块中排除该依赖,例如:
implementation 'com.example:problematic-library:1.0.0' { exclude group: 'androidx.appcompat', module: 'appcompat-resources' }
方法4:临时禁用AAR元数据检查(不推荐)
直接跳过检查任务,仅作为紧急临时方案,可能隐藏其他兼容性问题:
在app模块的build.gradle的android块中添加:
tasks.whenTaskAdded { task -> if (task.name.startsWith('checkDebugAarMetadata')) { task.enabled = false } }
内容的提问来源于stack exchange,提问作者Sutha Siva
相关产品推荐
相关产品推荐

