Android系统编译之Communication error with Jack server (35), try ‘jack-diagnose‘ or see Jack server log

场景

在进行Android系统开发时,在liunx编译时发生问题,描述如下:

ninja: build stopped: subcommand failed.
build/core/ninja.mk:148: recipe for target 'ninja_wrapper' failed
make: *** [ninja_wrapper] Error 1

向上查找发现问题点

Jack server already installed in "/home/**/.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'

个人分析

根据解释能看到建议查看 jack-diagnose或Jack server log
通过查看jack-diagnose并无什么信息
而Jack server log信息如下

17:35:29.750: INFO: com.android.jack.server.JackHttpServer: Loading config of jack server version: 1.3-a11 '1.3' (402300 704631c4e9bbfb4e8b052365140f79974b9f4cf4 by android-jack-team@google.com)
17:35:30.189: INFO: com.android.jack.server.JackHttpServer: Starting service connection server on /127.0.0.1:8076
17:35:31.892: INFO: com.android.jack.server.JackHttpServer: Starting admin connection on /127.0.0.1:8077
17:35:38.972: INFO: com.android.jack.server.JackHttpServer: Start timer
17:38:39.020: INFO: com.android.jack.server.JackHttpServer: Server mode changing from WAIT to IDLE
17:50:39.021: INFO: com.android.jack.server.JackHttpServer: Server mode changing from IDLE to DEEP_IDLE
19:35:39.200: INFO: com.android.jack.server.JackHttpServer: Server mode changing from DEEP_IDLE to SLEEP
23:35:39.041: INFO: com.android.jack.server.JackHttpServer: Server mode changing from SLEEP to SHUTDOWN
23:35:39.085: INFO: com.android.jack.server.JackHttpServer: Cancel timer
23:35:39.090: INFO: com.android.jack.server.JackHttpServer: Shutdowning service connection
23:35:39.091: INFO: com.android.jack.server.JackHttpServer: # max of concurrent compilations: 0
23:35:39.091: INFO: com.android.jack.server.JackHttpServer: # total of compilations: 0
23:35:39.092: INFO: com.android.jack.server.JackHttpServer: # max of concurrent forward compilations: 0
23:35:39.092: INFO: com.android.jack.server.JackHttpServer: # total of forward compilations: 0
23:35:39.267: INFO: com.android.jack.server.JackHttpServer: Done
23:35:39.267: INFO: com.android.jack.server.JackHttpServer: Shutdowning admin connection
23:35:39.322: INFO: com.android.jack.server.JackHttpServer: Done

截止到此处依旧不能看到问题,貌似一切正常

网上分析

分析1

原因:jack不支持多用户同时编译,所以经常出现jack server报错的现象
解决方法:

编辑 $home/.jack,$home/.jack-settings 和 $home/.jack-server/config.properties,修改SERVER_PORT_SERVICE和SERVER_PORT_ADMIN的端口号,然后保存。
如果权限不对可以执行下面的命令修改权限:
chmod 600 .jack
chmod 600 .jack-settings
chmod 700 .jack-server
查看jack server是否启动
cd prebuilts/sdk/tools ./jack-admin start-server/stop-server
jack-admin server-log命令来查找log所在目录

测试结果:失败,应该不是遇到的问题

分析2

原因1:权限问题

查看是否为权限问题:

运行失败时进入~/.jack-server/logs目录查看日志,如果出现权限问题修改以下两个文件权限:
sudo chmod 777 ~/.jack-settings
sudo chmod 777 ~/.jack-server/config.properties

原因2:端口占用

正常情况默认端口没有问题的不需要修改、一般编译突然中上就会产生端口占用,执行命令杀掉进程解除端口占用或修改端口
解决方案:

1、系统源码目录下,执行以下命令:
./prebuilts/sdk/tools/jack-admin kill-server
2、如果执行jack-admin kill-server还存在端口占用问题,可修改端口试试:
vi ~/.jack-settings
SERVER_PORT_SERVICE=8076
SERVER_PORT_ADMIN=8077
vi ~/.jack-server/config.properties
jack.server.service.port=8076
jack.server.admin.port=8077
注意:service、admin端口,两个文件需要保持一至

原因3:删除 TLSv1, TLSv1.1

解决方案:

sudo vi /etc/java-8-openjdk/security/java.security
查找”jdk.tls.disabledAlgorithms=“删除TLSv1, TLSv1.1,如下:
jdk.tls.disabledAlgorithms=SSLv3, RC4, DES, MD5withRSA,

测试结论

失败,在网上看到相似报错,但是经过各种测试后发现依旧无效

解决方案

结论:使用./jack-admin kill-server,再开启 ./jack-admin start-server
在开发过程中,需要先对jack server是否安装,是否启动有概念,通过使用
./jack-admin start-server ,先进入项目目录

**@ubuntu:~/Project/MTK**/prebuilts/sdk/tools$ ./jack-admin start-server 
Communication error with Jack server (35), try 'jack-diagnose' or see Jack server log

当开始报错时,可以确定没有启动,但是可以确定已经安装
网上有方案,要求执行./jack-admin stop-server,再开启 ./jack-admin start-server ,但是该方案失败。
然后发现有方案使用./jack-admin kill-server,再开启 ./jack-admin start-server,执行后成功

**@ubuntu:~/Project/MTK**/prebuilts/sdk/tools$ ./jack-admin kill-server
Killing background server
**@ubuntu:~/Project/MTK**/prebuilts/sdk/tools$ ./jack-admin start-server
Launching Jack server java -XX:MaxJavaStackTraceDepth=-1 -Djava.io.tmpdir=/tmp -Dfile.encoding=UTF-jack-server/launcher.jar com.android.jack.launcher.ServerLauncher
**@ubuntu:~/Project/MTK**/prebuilts/sdk/tools$ ./jack-admin start-server
Server is already running

当打印“Server is already running”明显表面已经正常。
疑问:还是不理解为什么需要kill,而stop却不行

说明

其实网上还有很多其他关于jack的问题及解决方案,但明显本次问题并不是出错,只是操作失误,导致被关闭

相关链接

https://blog.csdn.net/longmin96/article/details/117782235

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值