MTK编译时报错 Try increasing heap size with java option '-Xmx<size>
解决内存不足的3个办法:
-
增加机器内存
-
增加swap分区
-
修改prebuild/sdk/tools/jack-admin文件
第一种方式,原本4g内存,换到16G内存成功编译通过。
第二种方式:增加swap分区;
https://blog.51cto.com/hancj/197915
https://blog.csdn.net/u011417820/article/details/105991929
free -h #发现Swap参数全部为0
sudo mkdir /data
sudo touch /data/swapfile
sudo chmod 600 /data/swapfile
1.创建交换分区的文件:增加8G大小的交换分区
sudo dd if=/dev/zero of=/data/swapfile bs=1G count=8
2.设置交换分区文件:
sudo mkswap /data/swapfile #建立swap的文件系统
1和2的快速创建方法——fallocate
sudo fallocate -l 8G /data/swapfile
3.立即启用交换分区文件:
swapon /data/swapfile #启用swap文件
4.使系统开机时自启用,在文件/etc/fstab中添加一行:
sudo vim /etc/fstab
/data/swapfile none swap sw 0 0
5.完成
第三种方式:https://blog.csdn.net/u011784994/article/details/80990890
# 备份jack-admin
cp prebuild/sdk/tools/jack-admin ~/Docments/jack-admin.original
# 修改jack-admin文件
vim prebuild/sdk/tools/jack-admin
# 修改其中的一句话:
JACK_SERVER_COMMAND="java -Djava.io.tmpdir=$TMPDIR $JACK_SERVER_VM_ARGUMENTS -cp $LAUNCHER_JAR $LAUNCHER_NAME"
# 改成下面这行,增加java堆大小。
JACK_SERVER_COMMAND="java -Djava.io.tmpdir=$TMPDIR $JACK_SERVER_VM_ARGUMENTS -Xmx8000M -cp $LAUNCHER_JAR $LAUNCHER_NAME"
以上增加的-Xmx8000M,表示允许java在运行时java堆使用最大不超过8000M内存。
我之前试过4096M结果没能成功,改成8000M后编译通过。
编译过程中可以通过下面的指令观察swap的使用情况
time free -h -s 5 -c 1000
-h #人性化输出显示
time -s 5 -c 1000 #表示持续每隔5s更新更新一次信息,更新1000次
free -th #展示total
解决Jack server failed to (re)start办法:
cd /prebuild/sdk/tools/
jack-admin stop-server
jack-admin start-server