AGP7.0.2开启Gradle配置缓存执行androidDependencies任务报错求解决方案
问题根因
该报错是AGP 7.0.2版本的已知兼容性缺陷:androidDependencies任务的内部成员变量没有做配置缓存序列化适配,全局开启配置缓存后执行该任务会触发序列化失败,日常构建运行不受影响是因为常规构建流程不会触发该任务的执行。
可落地解决方案
- 方案1:升级AGP版本
该问题在AGP 7.1.0及后续稳定版本已被官方修复,直接将项目AGP依赖升级到7.1.0+版本即可同时保留全局配置缓存生效、正常执行androidDependencies任务,无需额外添加命令行参数。如果项目有大版本升级约束,可先尝试升级到7.0系列最高补丁版本7.0.4,部分场景下也可解决该问题。 - 方案2:对指定任务单独禁用配置缓存
暂时无法升级AGP的情况下,可以在项目根目录的build.gradle文件中添加如下配置,仅针对androidDependencies任务自动关闭配置缓存,不影响其他任务的配置缓存加速效果:
配置提交到代码仓库后全团队自动生效,不需要手动修改本地配置或执行命令时额外加参数。tasks.whenTaskAdded { task -> if (task.name == 'androidDependencies') { task.systemProperty 'org.gradle.unsafe.configuration-cache', 'false' } } - 方案3:替换依赖查询命令
如果仅需要查询模块依赖树,可使用Gradle原生的dependencies任务替代,该任务对配置缓存的适配更完善,不会触发该报错,使用方式为./gradlew :目标模块名:dependencies。
团队落地建议
优先选择AGP版本升级方案,7.1.x版本已经过大规模生产环境验证,除修复该问题外还附带多项构建性能优化,适配成本极低。如果暂时无法升级AGP,直接使用方案2的配置即可,对团队使用无感知,不影响配置缓存带来的构建效率提升。
内容的提问来源于stack exchange,提问作者Long Ranger
相关产品推荐
相关产品推荐

