升级lifecycle到2.4.0后出现AAR metadata编译构建报错该如何解决?
问题根本原因
Lifecycle 2.4.0 及以上版本的所有核心组件(包括 lifecycle-viewmodel-ktx、lifecycle-livedata-ktx)本身就要求 minCompileSdk = 31,你当前项目的编译版本仅为30,所以触发AAR元数据校验报错。你之前强制指定core-ktx版本的方案无效,是因为问题根源和core-ktx无关。
解决方案
方案1:升级编译版本(官方推荐,无兼容风险)
直接将模块级build.gradle中的compileSdkVersion升级到31即可,该操作仅提升编译时的SDK版本,不会影响应用在低版本安卓设备上的运行兼容性,只要minSdkVersion保持不变即可。如果需要使用Lifecycle 2.4.0的新特性,优先选择本方案。
修改示例:
android { compileSdkVersion 31 // 如有targetSdkVersion也建议同步升级到31,不影响旧设备兼容 defaultConfig { targetSdkVersion 31 // 其余配置保持不变 } }
方案2:强制降级Lifecycle相关组件版本
如果暂时无法升级compileSdk到31,可以强制指定低于2.4.0版本的Lifecycle组件,2.3.1版本的minCompileSdk为30,和你当前的编译版本匹配。
修改你的强制版本配置如下:
configurations.all { resolutionStrategy { force 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1' force 'androidx.lifecycle:lifecycle-livedata-ktx:2.3.1' } }
内容的提问来源于stack exchange,提问作者Saeed Darvish
相关产品推荐
相关产品推荐

