您好,登錄后才能下訂單哦!
這篇文章給大家介紹安卓編譯Jack server錯誤問題解決辦法是什么,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
最近在編譯安卓的時候,遇到Jack Server報錯的問題:Failed to authenticate Jack server certificate. Try 'jack-diagnose'。
Jack server already installed in "/home/airenao/.jack-server"
Communication error with Jack server (60), try 'jack-diagnose' or see Jack server log
Failed to authenticate Jack server certificate. Try 'jack-diagnose'
Failed to authenticate Jack server certificate. Try 'jack-diagnose'
[ 2% 40/1802] target Java: core-oj (out/target/common/obj/JAVA_LIBRARIES/core-oj_intermediates/classes)
ninja: build stopped: subcommand failed.
10:27:27 ninja failed with: exit status 1
可以參考官方說明: https://source.android.com/setup/build/jack
Jack 是一種新型 Android 工具鏈,用于將 Java 源代碼編譯成 Android dex 字節碼。 它取代了之前由 javac、ProGuard、jarjar 和 dx 等多種工具組成的 Android 工具鏈。
Jack 工具鏈具有以下優勢:
完全開放源代碼 它是在 AOSP 中提供的;并且歡迎用戶貢獻資源。
提高編譯速度 Jack 提供以下具體支持來減少編譯時間:dex 預處理、增量編譯和 Jack 編譯服務器。
支持壓縮、混淆、重新打包和多 dex 處理 不再需要使用單獨的軟件包(如 ProGuard)
有2種解決辦法,一種是編譯的時候disable掉 jack server;還有一種就是 jack 在編譯的時候,不是一個人在編譯,導致是同一個 port,所以超時了,修改port即可。
這種簡單粗暴,直接設置一個臨時全局變量就可以了。
make *** ANDROID_FORCE_JACK_ENABLED=disabled -j32
先來看看Jack Server每個參數是什么意思。
SERVER=true 開啟jack server.
SERVER_PORT_SERVICE=8072 設置TCP服務器端口號用來進行匯編編譯
SERVER_PORT_ADMIN=8073 設置TCP服務器端口號用來管理員的編譯管理
SERVER_COUNT=1 當前未使用,一般為默認
SERVER_NB_COMPILE=4 同時編譯最大線程
SERVER_TIMEOUT=60 如果server沒有在60s內沒有反應,那么將會關掉此服務
SERVER_LOG=${SERVER_LOG:=$SERVER_DIR/jack-$SERVER_PORT_SERVICE.log} Log輸出的位置
JACK_VM_COMMAND=${JACK_VM_COMMAND:=java} 啟動JVM命令
把家目錄下面的jack-setting文件和jack-server下config.properties文件里面的PORT修改為一致的即可。
下面是一個舉例,修改較大的端口號,避免和其他的沖突。
# 這個文件是$HOME/.jack-settings
SERVER_PORT_SERVICE=28076
SERVER_PORT_ADMIN=28077
# 這個文件是$HOME/.jack-server/config.properties
jack.server.service.port=28076
jack.server.admin.port=28077
錯誤信息就在log里面,多關注console log。
關于安卓編譯Jack server錯誤問題解決辦法是什么就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。