Gradle Task执行缓慢求助:dexBuilder卡顿与内存占用异常
排查建议
检查Gradle与AGP版本
确认最近是否自动升级了Gradle或Android Gradle Plugin(AGP)版本,部分新版本可能存在兼容性问题。可以尝试回退到一周前使用的稳定版本,修改项目根目录下build.gradle中的AGP版本,以及gradle/wrapper/gradle-wrapper.properties中的Gradle版本。优化Dex编译配置
- 启用D8/R8增量编译:在
gradle.properties中确保开启以下配置:android.enableD8=true android.enableR8=true android.enableIncrementalD8=true - 缩小Dex编译范围:检查是否有不必要的依赖被引入,比如多模块项目中是否误将模块设为
implementation而非api,导致额外代码被打包进Dex。
- 启用D8/R8增量编译:在
调整内存分配参数
- 修改Gradle堆内存:在
gradle.properties中调整org.gradle.jvmargs,示例配置:
避免Java进程占用过多内存导致系统资源耗尽。org.gradle.jvmargs=-Xmx8g -XX:MaxMetaspaceSize=2g -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 - 调整Android Studio内存:打开
Help > Edit Custom VM Options,修改-Xmx参数(例如设为-Xmx6g),避免AS与Gradle Java进程抢占过多系统内存。
- 修改Gradle堆内存:在
清理缓存并重启
- 清理Gradle构建缓存:执行命令
./gradlew cleanBuildCache,删除本地损坏或冗余的Gradle缓存。 - 清理Android Studio缓存:通过
File > Invalidate Caches... > Invalidate and Restart重启IDE,清除IDE层面的缓存文件。
- 清理Gradle构建缓存:执行命令
排查近期依赖变更
回顾一周内新增或更新的第三方依赖,部分库可能包含大量冗余代码或引入依赖冲突。使用./gradlew app:dependencies命令查看依赖树,排查重复依赖、大体积依赖,尝试暂时移除最近新增的依赖,验证编译速度是否恢复。检查系统资源状态
- 确认系统剩余内存充足,当可用内存不足时,系统会触发虚拟内存交换,导致编译速度骤降。关闭不必要的后台应用,释放系统资源。
- 检查磁盘状态:确保编译目录所在磁盘剩余空间大于20GB,且没有其他进程占用高磁盘IO,磁盘IO过高会直接拖慢dexBuilder任务的文件读写速度。
排查多模块项目编译任务
如果是多模块项目,执行./gradlew --no-build-cache --dry-run查看Rebuild时触发的任务列表,确认是否有不必要的模块被强制重新编译,调整模块间的依赖配置减少无效编译。
内容的提问来源于stack exchange,提问作者Sirop4ik
相关产品推荐
相关产品推荐

