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

生成签名Android App Bundle(AAB)时报java.lang.OutOfMemoryError如何解决

解决方案

1 调整全局Gradle JVM内存配置

打开项目根目录下的gradle.properties文件,找到org.gradle.jvmargs配置项,修改为更大的堆内存阈值,示例配置如下:

org.gradle.jvmargs=-Xmx4096m -XX:MaxMetaspaceSize=1024m -Dfile.encoding=UTF-8
  • 若设备运行内存为8G,可将-Xmx参数值设为2048m;16G及以上运行内存建议设为4096m或更高
  • 修改完成后执行./gradlew --stop(Windows系统执行gradlew.bat --stop)停止现有Gradle守护进程,再重新触发打包流程

2 单独配置BundleTool运行内存

报错触发在BundleTool执行阶段,若全局Gradle内存配置生效后仍报错,可在app模块的build.gradle文件中新增BundleTool专属内存配置:

android {
    // 保留原有配置不变
    bundle {
        toolOptions {
            // 给BundleTool分配最大4G运行内存,可根据实际情况调整数值
            jvmOptions = ["-Xmx4096m"]
        }
    }
}

3 降低打包资源负载

如果项目包含大量冗余资源、多架构so库,可通过配置减少打包时需要处理的资源体积,降低内存占用:

  • 在release构建配置中开启资源压缩和代码混淆:
    android {
        buildTypes {
            release {
                // 原有签名、混淆配置保留
                minifyEnabled true
                shrinkResources true
            }
        }
    }
    
  • 过滤不需要的ABI架构,减少so库打包体积:
    android {
        defaultConfig {
            ndk {
                // 按需保留需要支持的架构
                abiFilters 'armeabi-v7a', 'arm64-v8a'
            }
        }
    }
    

4 临时调试配置(仅作临时排查用)

如果以上方案均未解决,可在gradle.properties中临时添加以下配置,关闭并行编译和守护进程减少额外内存占用:

org.gradle.parallel=false
org.gradle.daemon=false

打包完成后可删除上述配置恢复原有构建性能。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 07:06:03