Android应用构建失败:androidx.window要求minCompileSdk31,已配compileSdk30仍报错
问题根因
你项目依赖的androidx.window:window:1.0.0-beta03、androidx.window:window-java:1.0.0-beta03两个库的AAR元数据明确要求最低编译SDK为31,高于你项目当前配置的compileSdk 30,因此触发校验失败。此前项目运行正常大概率是依赖声明使用了动态版本规则(比如1.0.0-beta+),近期自动拉取了最新的beta03版本导致问题爆发。
解决方案
方案1:强制指定低版本androidx.window依赖(无需升级compileSdk,最快修复)
在app模块的build.gradle文件中添加强制版本约束,指定使用最低编译SDK要求为30的beta02版本即可:
// 与android块平级添加 configurations.all { resolutionStrategy { force "androidx.window:window:1.0.0-beta02" force "androidx.window:window-java:1.0.0-beta02" } }
添加完成后同步Gradle,清理并重建项目即可解决问题。
方案2:升级项目compileSdk到31(兼容高版本依赖,长期推荐方案)
直接修改app模块build.gradle中的compileSdk配置为31即可,升级compileSdk不会影响应用在低版本Android设备上的运行,只要minSdk配置保持不变即可:
android { compileSdk 31 // 将原有30修改为31 defaultConfig { // 可根据业务需求选择是否同步升级targetSdk到31 targetSdk 31 // 其余原有配置保持不变 } }
修改完成后同步Gradle即可。
方案3:临时关闭AAR元数据校验(仅用于紧急验证,不推荐长期使用)
如果需要临时绕过校验快速打包,可以在项目根目录的gradle.properties文件中添加如下配置:
android.enableAarMetadataCheck=false
该配置会关闭全局AAR元数据校验,可能后续引入其他版本不兼容问题,仅建议临时验证场景使用。
内容的提问来源于stack exchange,提问作者Claudio Andre Hernández Zavala
相关产品推荐
相关产品推荐

