Jack-Server(二) aosp 编译过程中Jack server SSL error 错误解决方法

一.jack-server 配置

1.1.Android7.1 系统使用 jack-server 作为 java 代码编译器,在编译过程中可能会遇到以下类似的错误:

Jack server already installed in "/home/user/.jack-server"
Communication error with Jack server (1), try 'jack-diagnose' or see Jack server log
Communication error with Jack server 1. Try 'jack-diagnose'
Communication error with Jack server 1. Try 'jack-diagnose'

此错误是由于 jack-server 本身编译器限制,同一个网络端口号不能多个用户同 时使用

即多个用户在同一个服务器上协同开发过程中,编译 Android7.1 时,需要 配置各自使用不同的网络端口号  

1.2.jack-server 的两个配置文件(user 为对应用户的用户名),决定了它所使用的端口号
/home/user/.jack-server/config.properties 
/home/user/.jack-settings

这两个配置文件需要配置两个端口号,分别为服务端端口号,及客户端端口号, 两个配置文件中的端口号要匹配 

jack.server.service.port=8074 
jack.server.admin.port=8075 
及 
SERVER_PORT_SERVICE=8074 
SERVER_PORT_ADMIN=8075

配置步骤如下: 确保两个配置文件存在,并且权限设置为 0600

chmod 0600 /home/user/.jack-server/config.properties 
chmod 0600 /home/user/.jack-settings 
1.3. 文件 .jack-settings 文件目录 .jack-server 

1.4. .jack-server/config.properties

修改端口号,请更改 service port 及 admin port 为其他端口号,两个配置文件 里的端口号需要匹配  示例如下: 

jack.server.service.port=8090 
jack.server.admin.port=8091 
及 
SERVER_PORT_SERVICE=8090 
SERVER_PORT_ADMIN=8091
若两个配置文件不存在 请参照以下文本新建这两个配置文件  config.properties 文件示例如下(端口号需按实际修改)
.jack-settings
# Server settings
SERVER_HOST=127.0.0.1
SERVER_PORT_SERVICE=8090
SERVER_PORT_ADMIN=8091
 
# Internal, do not touch
SETTING_VERSION=4

.jack-server/config.properties

jack.server.max-jars-size=104857600
jack.server.max-service=4
jack.server.service.port=8090
jack.server.max-service.by-mem=1\=2147483648\:2\=3221225472\:3\=4294967296
jack.server.admin.port=8091
jack.server.config.version=2
jack.server.time-out=7200

1.5. prebuilts/sdk/tools   重启 jack-server ./jack-admin kill-server && ./jack-admin start-server

 

 

二 .Android 7.1 编译过程中Jack server SSL error 错误解决方法
2.1.使用的环境是ubuntu 16.04 编译大概率会出现jack server 跑不起来然后抛一个类似这样的错误

如下:

[ 10% 538/4980] Ensuring Jack server is installed and started 
FAILED: setup-jack-server 
/bin/bash -c "(prebuilts/sdk/tools/jack-admin install-server prebuilts/sdk/tools/jack- 
launcher.jar prebuilts/sdk/tools/jack-server-4.11.ALPHA.jar 2>&1 || (exit 0) ) && 
(JACK_SERVER_VM_ARGUMENTS=\"-Dfile.encoding=UTF-8 -XX:+TieredCompilation\" 
prebuilts/sdk/tools/jack-admin start-server 2>&1 || exit 0 ) && (prebuilts/sdk/tools/jack- 
admin update server prebuilts/sdk/tools/jack-server-4.11.ALPHA.jar 4.11.ALPHA 2>&1 || exit 
0 ) && (prebuilts/sdk/tools/jack-admin update jack prebuilts/sdk/tools/jacks/jack- 
4.32.CANDIDATE.jar 4.32.CANDIDATE || exit 47 )" 
Jack server already installed in "/home/user/.jack-server" 
Communication error with Jack server (35), try 'jack-diagnose' or see Jack server log 
SSL error when connecting to the Jack server. Try 'jack-diagnose' 
SSL error when connecting to the Jack server. Try 'jack-diagnose' 
[ 10% 541/4980] build 
out/target/product/rk3399_mid/obj/ETC/precompiled_sepolicy_intermediates/precompiled_sepoli 
cy
ninja: build stopped: subcommand failed. 
22:32:18 ninja failed with: exit status 1 
build completed failed 
 
2.2.原因就是编译时用的是open-jdk 8u292,默认禁用了TLSv1, TLSv1.1, 从/etc/java-8-openjdk/security/java.security中取消TLSv1, TLSv1.1 禁用, 修改前:  

修改后:

jdk.tls.disabledAlgorithms=SSLv3, RC4, DES, MD5withRSA, \

DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, \

include jdk.disabled.namedCurves 

2.3./prebuilts/sdk/tools/ 目录下执行 ./jack-admin kill-server && ./jack-admin start-server 成功  

posted @ 2022-03-25 10:46  CrushGirl  阅读(474)  评论(0编辑  收藏  举报