构建Android AOSP时Soong启动失败,疑因内存不足如何解决?
修复Android AOSP构建时Soong Bootstrap被Kill的问题
你的问题核心是物理内存不足——标称16GB内存被系统识别为15.6GB,加上系统本身占用,实际可用内存达不到Soong构建的最低要求,导致进程被系统OOM Killer强制终止。以下是可行的修复方案:
1. 临时添加大尺寸交换分区(最有效)
构建AOSP时内存峰值需求很高,添加交换分区可以用磁盘空间补充内存,避免进程被Kill:
# 创建16GB的交换文件 sudo fallocate -l 16G /swapfile # 设置权限(必须) sudo chmod 600 /swapfile # 初始化交换分区 sudo mkswap /swapfile # 启用交换分区 sudo swapon /swapfile
如果需要重启后自动生效,编辑/etc/fstab文件,添加一行:
/swapfile none swap sw 0 0
注意:SSD上使用交换分区会有一定损耗,仅建议临时用于构建,完成后可以用
sudo swapoff /swapfile && sudo rm /swapfile删除。
2. 限制Soong的内存使用
通过环境变量强制限制Soong的内存占用上限,避免触发OOM:
# 限制Soong使用不超过12GB内存 export SOONG_MEMORY_LIMIT=12000 # 然后执行构建命令,比如 make -j4
3. 彻底清理后台占用内存的进程
关闭浏览器、IDE、虚拟机、后台服务等所有非必要进程,用free -h或htop确认空闲内存尽可能多,再执行构建。
4. 进一步降低并行构建参数
尝试使用更低的并行度,比如make -j2,大幅降低内存峰值需求,虽然构建速度变慢,但能避免内存溢出。
内容的提问来源于stack exchange,提问作者Raulp
相关产品推荐
相关产品推荐

