MTK編譯時報錯Try increasing heap size with java option ‘-Xmx<size>
阿新 • • 發佈:2020-12-19
技術標籤:Android編譯&RK編譯MTK編譯
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