坑了几天的jack-server

本文详细记录了一次解决Android O系统源码编译过程中遇到的Jack-server配置问题的经历,通过分析jack-report.xxxxx.zip中的信息,发现证书不匹配导致编译失败。最终通过删除~/.jack-server和~/.jack-settings目录,重新编译,成功解决了问题。

一同事,编译android o系统源码时,说他的编译不过,jack-server出问题了,要看一下我的jack-server配置,我这边是好的,我就发给他了,然而没过多久,我自己的也居然编译不了,报他同样的问题了(可能是同事直接拷贝了我配置信息吧),鉴于对这个了解的不多,刚开始一头雾水,连续三个工作日,都是在折腾这事。后面还是不断的尝试,搞好了。

俺是这样解决的:

1、进android源码下的prebuilts/sdk/tools目录,执行./jack-admin dump-report,会生成jack-report.xxxxx.zip; 

2、解压这个jack-report.xxxxx.zip,打开report.xxxxx.txt文件

3、关注以下的信息:

$ JACK_EXTRA_CURL_OPTIONS=-v jack-admin list server
*   Trying ::1...
* connect to ::1 port 8077 failed: Connection refused
*   Trying 127.0.0.1...
* Connected to localhost (127.0.0.1) port 8077 (#0)
* found 1 certificates in /home/xwl/.jack-server/server.pem
* found 594 certificates in /etc/ssl/certs
* ALPN, offering http/1.1
* SSL connection using TLS1.2 / ECDHE_RSA_AES_256_GCM_SHA384
*      server certificate verification OK
*      server certificate status verification SKIPPED
*      common name: localhost (matched)  ---->出错时报的not match,没有保存出错的那个log

从这里,我怀疑是不是~/.jack-server目录下的,那些证书不匹配导致的。

4、直接删除~/.jack-server,~/.jack-settings;然后重新编译,让它自动生成删除的这些文件;就OK了。

5、若端口有冲突,还是要打开~/.jack-settings和~/.jack-server/config.properties修改端口,两个文件保持统一,其它地方不需要手动修改;

 

反正,以后要是再碰到相关问题,直接./jack-admin dump-report,然后分析相关的出错信息,应该能快速解决。

 

 

参考了:https://blog.youkuaiyun.com/codeslave1130/article/details/83988820

https://blog.youkuaiyun.com/LoongEmbedded/article/details/79344903

 

 

在Ubuntu 16.04系统上编译Android 7.0时遇到Jack服务器通信错误(错误信息为Communication error with Jack server (77),Problem reading /home/hty/.jack-server/server.pem),可以尝试以下解决办法: ### 1. 停止并重启Jack服务器 ```bash ./prebuilts/sdk/tools/jack-admin stop-server ./prebuilts/sdk/tools/jack-admin start-server ``` 上述代码通过`jack-admin`工具停止并重新启动Jack服务器,以尝试恢复正常通信。 ### 2. 删除并重新生成Jack服务器配置文件 ```bash rm -rf ~/.jack-server ./prebuilts/sdk/tools/jack-admin install-server prebuilts/sdk/tools/jack-launcher.jar prebuilts/sdk/tools/jack-server-4.8.ALPHA.jar ``` 这里先删除`~/.jack-server`目录,该目录包含了Jack服务器的配置文件,可能存在损坏。然后重新安装Jack服务器,生成新的配置文件。 ### 3. 增加Jack服务器的内存分配 在`~/.jack-settings`文件中添加或修改以下内容: ```properties jack.server.max-service=5 jack.server.service.enabled-by-default=true jack.server.max-jack-heap-size=4g ``` 上述配置增加了Jack服务器的最大堆内存到4GB,避免因内存不足导致通信错误。 ### 4. 检查文件权限 确保`/home/hty/.jack-server/server.pem`文件的权限是正确的,可以使用以下命令设置: ```bash chmod 600 /home/hty/.jack-server/server.pem ``` 该命令将文件权限设置为只有所有者有读写权限,避免因权限问题导致无法读取文件。 ### 5. 更新环境变量 在`~/.bashrc`文件中添加以下环境变量: ```bash export ANDROID_JACK_VM_ARGS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4G" source ~/.bashrc ``` 上述代码设置了Jack虚拟机的参数,包括文件编码、编译模式和最大堆内存,并更新了环境变量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值