From 0aa9f03f7723c6745eef0a67904990b6f4b80ecb Mon Sep 17 00:00:00 2001 From: jwinterm Date: Tue, 19 May 2026 14:38:57 -0400 Subject: [PATCH] Android: bump gradle JVM heap to 10G + cap workers to fix AAB OOM MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Verbose log of yesterday's AAB build revealed: java.lang.OutOfMemoryError: Java heap space at java.util.zip.DeflaterOutputStream.write at com.android.zipflinger.StreamSource. at com.android.builder.internal.packaging.AabFlinger$writeZip$1.call AAB packaging streams compressed native libs through ByteArrayOutputStream buffers. With universal-bundle (all 3 ABIs in one AAB) and parallel ForkJoinPool workers all drawing from the same 6G heap, the peak exceeds budget mid-zip. APK build doesn't hit this because per-ABI APKs are packaged separately, much smaller per-file working set. Two changes: 1) org.gradle.jvmargs: -Xmx6144M → -Xmx10240M, + MaxMetaspaceSize=1024M (the daemon-side metaspace also creeps up over a long build). 2) org.gradle.workers.max=2 — fewer parallel workers = lower simultaneous buffer footprint. Build still parallel, just gentler peak. --- android/gradle.properties | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/android/gradle.properties b/android/gradle.properties index 184d3042..4f09ae9b 100644 --- a/android/gradle.properties +++ b/android/gradle.properties @@ -1,4 +1,9 @@ -org.gradle.jvmargs=-Xmx6144M +# AAB universal-bundle packaging (AabFlinger.writeZip) OOMs at 6G because +# parallel ForkJoinPool workers all share the heap while buffering compressed +# native libs. Bumped to 10G + capped worker count to flatten the peak. +# linux-beast Docker container has plenty of RAM; bump higher if needed. +org.gradle.jvmargs=-Xmx10240M -XX:MaxMetaspaceSize=1024M -Dfile.encoding=UTF-8 +org.gradle.workers.max=2 android.enableR8=true android.useAndroidX=true android.enableJetifier=true -- 2.50.1 (Apple Git-155)