ninja failed with: exit status 137

2,812 阅读1分钟

编译过多次android源码了,也遇到不少问题
第一次是在windows,第二次是mac,问题很多,最后也没解决
后来用的ubuntu,问题就少了很多,这里强烈建议使用Ubuntu编译android源码

系统环境:Ubuntu22.0.4.1虚拟机
CPU:10600kf/2
内存:32G/2
硬盘:800G 以上除以2是其中一半性能留给了宿主机

之前在这个环境下编译过一次android10,是成功的,这几天想编译android12,结果就遇到了标题的问题。

ninja failed with: exit status 137

通过百度了解到是因为内存分配导致,以下是几个解决办法:

1.增大build/soong/java/config/config.go中的JavacHeapSize
2.增加环境变量MAVEN_OPTS

笔者选择的是第一种,这种方式不用清空out,然后...
么有解决...
后又查到一个办法

增大交换分区空间(swap)

笔者原来的swap只有2G,后改为32G

以下是修改方法

# 将现有swap移动到主内存,可能需要几分钟
sudo swapoff -a

# 创建新的swap文件,bs×count=最后生成的swap大小,这里设置8G
sudo dd if=/dev/zero of=/swapfile bs=1G count=8

# 设置权限
sudo chmod 0600 /swapfile

# 设置swap
sudo mkswap /swapfile

# 打开swap
sudo swapon /swapfile

# 检查设置是否有效
grep Swap /proc/meminfo # 或者htop看一下

# 设置永久有效
sudo gedit /etc/fstab
# 在末尾行加上 
# /swapfile swap swap sw 0 0

完美解决问题!!!

在此感谢几位大佬

[哆啦安全](blog.csdn.net/u011426115/…)

[江南古镇](zhuanlan.zhihu.com/p/480903179)