Ubuntu下Java编译内存不足的排查与解决
一、快速判断与定位
二、通用解决方案(按优先级执行)
sudo fallocate -l 16G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
echo 'export JAVA_OPTS="-Xms2g -Xmx4g"' >> ~/.bashrc
source ~/.bashrc
org.gradle.jvmargs=-Xmx4g
export MAVEN_OPTS="-Xms2g -Xmx4g"
三、Android AOSP场景的专项处理
export MAVEN_OPTS="-Xms4g -Xmx4g"
修改后建议清理并重拉构建状态:make clobber 或删除out/ 再编译。export JACK_SERVER_VM_ARGUMENTS="-Xmx4g -Dfile.encoding=UTF-8 -XX:+TieredCompilation"
out/host/linux-x86/bin/jack-admin kill-server
out/host/linux-x86/bin/jack-admin start-server
java -Xms2g -Xmx4g -jar prebuilts/sdk/tools/dx.jar --dex --output=out/.../classes.dex in.jar
四、配置生效验证与常见坑