溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

安卓編譯Jack server錯(cuò)誤問題解決辦法是什么

發(fā)布時(shí)間:2021-12-06 16:50:27 來源:億速云 閱讀:531 作者:柒染 欄目:大數(shù)據(jù)

這篇文章給大家介紹安卓編譯Jack server錯(cuò)誤問題解決辦法是什么,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。 

問題

最近在編譯安卓的時(shí)候,遇到Jack Server報(bào)錯(cuò)的問題: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
   

什么是Jack Server

可以參考官方說明: https://source.android.com/setup/build/jack

Jack 是一種新型 Android 工具鏈,用于將 Java 源代碼編譯成 Android dex 字節(jié)碼。 它取代了之前由 javac、ProGuard、jarjar 和 dx 等多種工具組成的 Android 工具鏈。

Jack 工具鏈具有以下優(yōu)勢(shì)
完全開放源代碼 它是在 AOSP 中提供的;并且歡迎用戶貢獻(xiàn)資源。
提高編譯速度 Jack 提供以下具體支持來減少編譯時(shí)間:dex 預(yù)處理、增量編譯和 Jack 編譯服務(wù)器。
支持壓縮、混淆、重新打包和多 dex 處理 不再需要使用單獨(dú)的軟件包(如 ProGuard)

安卓編譯Jack server錯(cuò)誤問題解決辦法是什么  
在這里插入圖片描述
 

解決方法

有2種解決辦法,一種是編譯的時(shí)候disable掉 jack server;還有一種就是 jack 在編譯的時(shí)候,不是一個(gè)人在編譯,導(dǎo)致是同一個(gè) port,所以超時(shí)了,修改port即可。

 

1. Disable Server

這種簡(jiǎn)單粗暴,直接設(shè)置一個(gè)臨時(shí)全局變量就可以了。

make *** ANDROID_FORCE_JACK_ENABLED=disabled -j32
   

2. 修改Port

先來看看Jack Server每個(gè)參數(shù)是什么意思。

SERVER=true 開啟jack server.
SERVER_PORT_SERVICE=8072 設(shè)置TCP服務(wù)器端口號(hào)用來進(jìn)行匯編編譯
SERVER_PORT_ADMIN=8073 設(shè)置TCP服務(wù)器端口號(hào)用來管理員的編譯管理
SERVER_COUNT=1 當(dāng)前未使用,一般為默認(rèn)
SERVER_NB_COMPILE=4 同時(shí)編譯最大線程
SERVER_TIMEOUT=60 如果server沒有在60s內(nèi)沒有反應(yīng),那么將會(huì)關(guān)掉此服務(wù)
SERVER_LOG=${SERVER_LOG:=$SERVER_DIR/jack-$SERVER_PORT_SERVICE.log} Log輸出的位置
JACK_VM_COMMAND=${JACK_VM_COMMAND:=java} 啟動(dòng)JVM命令
 

把家目錄下面的jack-setting文件和jack-server下config.properties文件里面的PORT修改為一致的即可。
下面是一個(gè)舉例,修改較大的端口號(hào),避免和其他的沖突。

#  這個(gè)文件是$HOME/.jack-settings

SERVER_PORT_SERVICE=28076 
SERVER_PORT_ADMIN=28077
 
# 這個(gè)文件是$HOME/.jack-server/config.properties

jack.server.service.port=28076
jack.server.admin.port=28077

小結(jié)

錯(cuò)誤信息就在log里面,多關(guān)注console log。

關(guān)于安卓編譯Jack server錯(cuò)誤問題解決辦法是什么就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI