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

Flutter构建release版APK报-Xmx4608m堆内存错误如何解决?

解决方案

根因说明

你遇到的两个报错是连锁问题:

  1. 第一个报错是因为你当前安装的是32位JDK,32位JVM最大支持的堆内存上限仅为1.4G~1.6G,设置4608m超出了最大支持范围,同时系统环境变量中配置的_JAVA_OPTIONS优先级高于gradle.properties配置,会优先读取该环境变量的堆内存参数。
  2. 第二个报错是因为你把堆内存调整到512M后,内存不足以支撑Android release包的打包流程,触发堆内存溢出。

具体操作步骤

  • 第一步:清理系统环境变量的无效配置
    打开Windows系统环境变量设置,检查是否存在名为_JAVA_OPTIONS的变量,若存在直接删除,或者将其值修改为-Xmx2048m,避免覆盖gradle配置。
  • 第二步:更换64位JDK
    32位JDK已经无法适配现在的Android打包需求,卸载当前32位JDK,下载安装64位的JDK8或JDK11,配置好JAVA_HOME等环境变量后,在cmd中执行java -version,确认输出包含64-Bit标识即为安装成功。
  • 第三步:调整gradle.properties配置
    将gradle.properties中的org.gradle.jvmargs参数修改为合理值:
    org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m
    android.enableR8=true
    android.useAndroidX=true
    android.enableJetifier=true
    
    如果你电脑运行内存大于8G,也可以将-Xmx调整为4096m提升打包速度。
  • 第四步:重新打包验证
    先执行flutter clean清理项目缓存,再执行flutter build apk --release进行release包构建即可。

可选优化

如果调整后依然偶发堆内存溢出,可在android/app/build.gradle的defaultConfig节点中添加配置开启多Dex分包:

defaultConfig {
    // 其他原有配置
    multiDexEnabled true
}

内容的提问来源于stack exchange,提问作者Alaeddine Bouhajja

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 02:57:02