1. 程式人生 > 其它 >MTK編譯時報錯Try increasing heap size with java option ‘-Xmx<size>

MTK編譯時報錯Try increasing heap size with java option ‘-Xmx<size>

技術標籤:Android編譯&RK編譯MTK編譯

MTK編譯時報錯Try increasing heap size with java option '-Xmx<size>

解決記憶體不足的3個辦法:

  1. 增加機器記憶體

  2. 增加swap分割槽

  3. 修改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

​​​​​​