ubuntu16.04下编译android8.1出现jack sever问题

本文讲述了在Ubuntu16.04环境下编译Android8.1时遇到的JackServer问题,包括环境库缺失、SSL错误和内存限制。作者提供了详细的解决步骤,如安装缺失的库、调整JackServer配置以及处理多用户环境中的端口冲突。
摘要由CSDN通过智能技术生成

ubuntu16.04下编译android8.1出现jack sever问题

小白我初学linux,在ubuntu16.04下编译androoid8.1系统,采用的rp-px30-android8.1源
码镜像包编译。

问题:
单独编译**./build.sh uboot,./build.sh kernel**都正常,但./build.sh android时一直异常。

另外首次全编译失败和再次重复编译现象有时还不一致。定位问题最好是make clean后再编译看首次失败时的提示信息。

1, 最开始的报错主要的体现在一些环境库安装不齐全,一般网上查查安装即可。
A, 如/bin/sh: 1: lz4c: not found
安装: sudo apt-get update
Sudo apt-get install liblz4-tool
B,如**/bin/bash:xmllint:**未找到命令 在这里插入图片描述

安装:sudo apt-get install libxml2-utils

2, 重点是出现jack-server问题,导致编译终止。
A, SSL error when connecting to the jack server.
在这里插入图片描述

一般可以在工程根目录下输入命令:jack-admin dump-report //dump报告
生成一个jack-report-xxx.zip压缩包。解压并分析report log
相关命令:1, ./prebuilts/sdk/tools/jack-admin list-server 命令查看jack-server是否开启?若没有启动,则执行后没有任何反应;若已经启动,则出现一些信息
在这里插入图片描述

2,./prebuilts/sdk/tools/jack-admin install-server jack-launcher.jar jack-server-4.8.ALPHA.jar //后面两文件名称需根据实际名称更改对应
./prebuilts/sdk/tools/jack-admin kill-server //关闭
./prebuilts/sdk/tools/jack-admin start-server //启动

具体做法:
去**/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/security/java.security** 文件中寻找到jdk.tls.disabledAlgorithms的config,去掉TLSv1, TLSv1.1,最好SSLv3也去了。具体解释参考网上详细介绍。
如下:
在这里插入图片描述

最后sudo reboot。然后make clean 再重新编译。

B,在解决SSL问题后,有时还有出现no jack server running
在编译前有确认过,jack server是运行起来了的,但在运行过程中确有时会自动停止了。
在这里插入图片描述

怀疑是编译过程中内存不够导致的。
1, 加大物理内存;
2, 添加java运行参数**-Xmx4g**
修改prebuilts/sdk/tools/jack-admin脚本,修改java运行参数,添加-Xmx4g,其中4g是指内存大小,以自己编译机的实际内存的一半为宜。
修改方法如下:
-JACK_SERVER_VM_ARGUMENTS=“ J A C K S E R V E R V M A R G U M E N T S : = − D f i l e . e n c o d i n g = U T F − 8 − X X : + T i e r e d C o m p i l a t i o n " + J A C K S E R V E R V M A R G U M E N T S = " {JACK_SERVER_VM_ARGUMENTS:=-Dfile.encoding=UTF-8 -XX:+TieredCompilation}" +JACK_SERVER_VM_ARGUMENTS=" JACKSERVERVMARGUMENTS:=Dfile.encoding=UTF8XX:+TieredCompilation"+JACKSERVERVMARGUMENTS="{JACK_SERVER_VM_ARGUMENTS:=-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4g }”

-JACK_SERVER_COMMAND=“java -XX:MaxJavaStackTraceDepth=-1 -Djava.io.tmpdir=$TMPDIR $JACK_SERVER_VM_ARGUMENTS -cp $LAUNCHER_JAR L A U N C H E R N A M E " + J A C K S E R V E R C O M M A N D = " j a v a − X X : M a x J a v a S t a c k T r a c e D e p t h = − 1 − D j a v a . i o . t m p d i r = LAUNCHER_NAME" +JACK_SERVER_COMMAND="java -XX:MaxJavaStackTraceDepth=-1 -Djava.io.tmpdir= LAUNCHERNAME"+JACKSERVERCOMMAND="javaXX:MaxJavaStackTraceDepth=1Djava.io.tmpdir=TMPDIR $JACK_SERVER_VM_ARGUMENTS -Xmx4g -cp $LAUNCHER_JAR $LAUNCHER_NAME”

还可能
修改prebuilts/sdk/tools/README-jack-server.md

-JACK_SERVER_VM_ARGUMENTS=“-Xmx2g -Dfile.encoding=UTF-8 -XX:+TieredCompilation” jack-admin start-server
+JACK_SERVER_VM_ARGUMENTS=“-Xmx4g -Dfile.encoding=UTF-8 -XX:+TieredCompilation” jack-admin start-server

C, 可能多用户使用,导致端口冲突占用
Vim ~/.jack-settings
Vim~/.jack-server/config.properties
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

有时可以考虑直接删除~/.jack-settings, ~/.jack-server/ 。然后编译时让系统自动重新生成。
以上方法也不一定保证一定就ok,只是做过的尝试,后来正常了。

其他网上一些方法:
1, /.jack-settings和/.jack-server/文件权限问题;
2, 编译时禁用jack-server;
3, 降低openjdk-8的版本到"1.8.0_192"以下才可以。

备注:
主要是android6.1~android8.1编译时需要安装外部openjdk-8.但最新的版本都比较高,兼容性不太好,旧的服务器上也没有("1.8.0_192"以下版本)。最新安卓应该不会出现这种jack-server问题。
在编译px30的rp-px30源码包时;
1, linux的kernel下,如果make clean后,需手动make以下 config配置文件,不然会编译kernel失败。
2, android下编译,比较纯净的编译是 先./build.sh clean 和make clean,再./build/envsetup.sh, lunch选择配置;然后./build.sh init选在板子平台。最后正常编译。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值