You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级Android Gradle Plugin到4.2.1后出现DaemonDisappearedException如何解决

异常产生核心原因

DaemonDisappearedException本质是Gradle守护进程运行时被强制终止或自身崩溃,结合AGP 4.2.1、Gradle 7.1.1、Kotlin 1.5.31的环境,常见触发原因如下:

  • JVM堆内存分配不足:AGP 4.2+版本相比旧版本构建时内存占用明显提升,默认的守护进程堆内存配置不够,导致进程被系统OOM机制杀掉
  • 第三方插件兼容性冲突:旧版字节码插桩、资源优化类Gradle插件未适配AGP 4.2.1,运行时异常导致守护进程崩溃
  • 环境资源限制:Android Studio本地环境或CI/CD节点的内存/CPU配额不足,构建过程中资源耗尽触发进程回收
  • Gradle缓存损坏:升级后旧版本守护进程缓存与新版本不兼容,导致进程异常退出
排查步骤
  • 执行构建时添加--stacktrace --info -Dorg.gradle.daemon.debug=true参数,获取守护进程退出前的详细日志,定位是OOM还是插件执行异常
  • 查看系统日志:Linux/macOS环境查看/var/log/syslog或dmesg输出,确认是否存在系统OOM机制杀掉Gradle进程的记录
  • 临时注释所有自定义第三方Gradle插件后重新构建,排查是否为插件兼容性问题
  • 分别在本地和CI环境复现问题,排除单环境资源限制问题
解决方案

1. 调整Gradle守护进程内存配置

在项目根目录的gradle.properties文件中修改JVM参数,提升内存上限:

org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=1g -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

如果是大型项目可以将-Xmx调整到6G~8G,CI环境根据节点内存配额对应调整即可。

2. 修复版本兼容性问题

  • 将所有第三方Gradle插件升级到适配AGP 4.2.1的版本,重点检查字节码插桩、资源压缩、构建加速类插件
  • Kotlin 1.5.31与AGP 4.2.1、Gradle 7.1.1的官方兼容矩阵匹配,无需降级Kotlin版本,存在Kotlin相关报错可升级Kotlin插件到对应最新小版本

3. 清理损坏的Gradle缓存

执行以下命令清理旧缓存,重启守护进程:

./gradlew --stop
rm -rf ~/.gradle/caches/

CI环境可以配置构建前自动清理Gradle缓存目录,或使用干净的构建节点。

4. CI/CD环境特殊适配

  • 关闭不必要的构建特性,并行构建、增量构建不稳定时可临时关闭
  • 提高CI节点的内存配额,确保可用内存不低于配置的守护进程堆内存的1.5倍
  • 单次构建的CI场景可添加--no-daemon参数运行构建,避免守护进程残留占用资源

内容的提问来源于stack exchange,提问作者Deepak Garg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 15:15:03