Flutter debug模式崩溃 运行flutter run内存占满Gradle守护进程启动失败
问题原因
- Gradle守护进程的JVM内存配置不合理,当前配置的最大堆内存
-Xmx1536M要么不足,要么和系统虚拟内存配置不匹配 - Windows系统分页文件(虚拟内存)大小设置过小,无法满足JVM申请内存的需求,报错中的DOS error 1455就是明确的分页文件不足提示
- 存在大量未正常退出的旧Gradle守护进程残留,每次执行
flutter run都会启动新的进程,叠加占用内存导致16G物理内存被耗尽
解决步骤
- 先打开任务管理器,结束所有名为OpenJDK Platform binary、Java的运行进程,释放已占用的内存,再手动删除Gradle缓存的旧daemon数据,路径为
C:\Users\你的用户名\.gradle\daemon目录下的所有文件夹 - 打开Flutter项目根目录下的
android/gradle.properties文件,找到org.gradle.jvmargs这一行配置,调整内存参数,可修改为org.gradle.jvmargs=-Xmx4g -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError,如果内存紧张也可以先试-Xmx2g,根据自身物理内存容量调整即可;同时可以在该文件新增一行配置org.gradle.daemon=true,确保只复用同一个daemon进程,避免重复创建 - 调整Windows虚拟内存配置:右键「此电脑」→「属性」→「高级系统设置」→「高级」选项卡→「性能」栏的「设置」→「高级」选项卡→「虚拟内存」栏的「更改」,取消勾选「自动管理所有驱动器的分页文件大小」,选择系统安装盘(一般是C盘),勾选「系统管理的大小」,点击「设置」后保存重启电脑;如果有需要也可以自定义大小,最小值设置为物理内存的1.5倍,最大值设置为物理内存的3倍即可
- 回到Flutter项目目录,依次执行
flutter clean、flutter pub get,然后再执行flutter run测试运行
内容的提问来源于stack exchange,提问作者on3ss
相关产品推荐
相关产品推荐

