编译过多次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
完美解决问题!!!
在此感谢几位大佬