編譯出錯 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文件的上限制做更精確的設定。


辦法二,修改環境變量:
參考:https://blog.csdn.net/bobcat_kay/article/details/76564969?locationNum=10&fps=1,鍵入命令:
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
參考:https://blog.csdn.net/xz10561/article/details/53886691
簡單了解:
我們先來看一下關於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字節代碼。)

參考:https://blog.csdn.net/qq_27061049/article/details/70156200
已經做出的修改:
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
————————————————
版權聲明:本文為CSDN博主「鍋ke」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/gh1026385964/java/article/details/80581218


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM