編譯出錯 ninja: build stopped: subcommand failed Android

解決方法

錯誤:ninja: build stopped: subcommand failed.


辦法一:按照提示:ulimit -c unlimited

該命令的詳細解釋參考:https://www.cnblogs.com/qq78292959/archive/2012/05/08/2490443.html

命令解釋:
ulimint -a 用來顯示當前的各種用戶進程限制
Linux對於每個用戶,系統限制其最大進程數,爲提高性能,可以根據設備資源情況,
設置個Linux用戶的最大進程數,一些需要設置爲無限制:
數據段長度無限制:ulimit -d unlimited
最大內存大小無限制:ulimit -m unlimited
堆棧大小無限制:ulimit -s unlimited
core文件大小無限制:ulimit -c unlimited

core文件的簡單介紹 :
在一個程序崩潰時,它一般會在指定目錄下生成一個core文件。core文件僅僅是一個內存映象(同時加上調試信息),主要是用來調試的。
當系統中的一些程序在遇到一些錯誤以及crash時,系統會自動產生core文件記錄crash時刻系統信息,包括內存和寄存器信息,用以程序員日 後debug時可以使用。這些錯誤包括段錯誤、非法指令、總線錯誤或用戶自己生成的退出信息等等,一般地,core文件在當前文件夾中存放。
core文件有時可能在你發生錯誤時,並沒有出現在你當前的文件夾中,發生這種情況的原因有兩個:一個是當前終端被設置爲不能彈出core文件;另一種則是core文件被指定了路徑。
對於前者,我們可以使用ulimit命令對core文件的大小進行設定。一般默認情況下,core文件的大小被設置爲0,這樣系統就不dump出core文件了。這時,使用命令:ulimit -c unlimited進行設置,就可以把core文件的大小設置爲無限大,同時也可以使用數字來替代unlimited,對core文件的上限制做更精確的設定。


辦法二,修改環境變量:

鍵入命令:

export JACK_SERVER_VM_ARGUMENTS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4096m"
out/host/linux-x86/bin/jack-admin kill-server
out/host/linux-x86/bin/jack-admin start-server

辦法三,修改Jack配置文件:

背景知識:什麼是Jack
簡單瞭解:
我們先來看一下關於Jack server官方介紹:
Jack is a new Android toolchain that compiles Java source into Android dex bytecode. It replaces the previous Android toolchain, which consists of multiple tools, such as javac, ProGuard, jarjar, and dx.
(Jack編譯器工具是一套新的Android編譯工具用來將Java代碼轉換爲Android dex字節代碼。)

已經做出的修改:
1)修改prebuilts/sdk/tools/jack-admin 文件,變量JACK_SERVER_VM_ARGUMENTS,添加參數

-Xmx4096M
JACK_SERVER_VM_ARGUMENTS
=”${JACK_SERVER_VM_ARGUMENTS:=-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4096}”

2)prebuilts/sdk/tools/jack-admin 文件,在 JACK_SERVER_COMMAND=“…… -cp ……” -cp 前添加

-Xmx4096m(4096m爲內存大小的一半左右,根據所用的主機配置而定)
JACK_SERVER_COMMAND="java -XX:MaxJavaStackTraceDepth=-1 -Djava.io.tmpdir=$TMPDIR 
$JACK_SERVER_VM_ARGUMENTS -Xmx4096m -cp $LAUNCHER_JAR $LAUNCHER_NAME"

3)prebuilts/sdk/tools/README-jack-server.md

-JACK_SERVER_VM_ARGUMENTS="-Xmx2g -Dfile.encoding=UTF-8 -XX:+TieredCompilation" jack-admin start-server
+JACK_SERVER_VM_ARGUMENTS="-Xmx4g -Dfile.encoding=UTF-8 -XX:+TieredCompilation" jack-admin start-server

————————————————
參考
https://blog.csdn.net/xz10561/article/details/53886691
https://www.cnblogs.com/qq78292959/archive/2012/05/08/2490443.html
https://blog.csdn.net/bobcat_kay/article/details/76564969?locationNum=10&fps=1
https://blog.csdn.net/qq_27061049/article/details/70156200

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章