android編譯問題解決記錄

在虛擬機中編譯android7
1.try ‘jack-diagnose’ or see Jack server log 參考

原因:jack不支持多用戶同時編譯,所以經常出現jack server報錯的現象。主機中的port和虛擬機中的port相同。
解決:
/home/aaron/.jack-server/config.properties
/home/aaron/.jack-settings

編譯這兩個文件,修改 port值,並保持一致。
例:
SERVER_PORT_SERVICE=8074
SERVER_PORT_ADMIN=8075
這兩個文件權限爲600

2.Out of memory error 參考

原因: java 虛擬機的默認內存太小不滿足編譯要求,需要增大內存
解決:修改 prebuilts/sdk/tools/jack-admin 文件,增加 ‘-Xmx’。如下我使用的是 -Xmx4G

-      JACK_SERVER_COMMAND="java -XX:MaxJavaStackTraceDepth=-1 -Djava.io.tmpdir=$TMPDIR $JACK_SERVER_VM_ARGUMENTS -cp $LAUNCHER_JAR $LAUNCHER_NAME"
+      JACK_SERVER_COMMAND="java -XX:MaxJavaStackTraceDepth=-1 -Djava.io.tmpdir=$TMPDIR $JACK_SERVER_VM_ARGUMENTS -Xmx4G -cp $LAUNCHER_JAR $LAUNCHER_NAME"

另外編譯需要關閉當前已經運行的 jack-admin,再進行編譯才能啓動新的 jack-admin

./prebuilts/sdk/tools/jack-admin kill-server

3/bin/bash: xmllint: command not found 參考

解決方法安裝 xmllint 命令如下:

apt-get install libxml2-utils

4.kernel: Out of memory: Killed process 參考

原因:內存不夠
解決:添加swap分區

sudo dd if=/dev/zero of=/root/swapfile bs=1M count=4096
sudo mkswap /root/swapfile
sudo swapon /root/swapfile
echo "/root/swapfile swap swap defaults 0 0" >> /etc/fstab
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章