Ubuntu16.04编译Android8.1遇到Jack-Server问题及解决方法

需积分: 0 2 下载量 71 浏览量 更新于2024-08-03 收藏 632KB PDF 举报
"在Ubuntu 16.04环境下编译Android 8.1系统时遇到Jack-Server问题,主要是由于环境库不全和Jack-Server相关问题导致编译失败。" 在Ubuntu 16.04上进行Android 8.1系统的编译是一项复杂的工作,特别是对于初次接触Linux的小白来说,可能会遇到各种问题。在本案例中,用户在编译过程中遇到了两个主要问题: 1. 环境库缺失: 编译过程中出现错误提示,例如`/bin/sh: 1: lz4c: not found`,这表明系统缺少必要的库。为解决此类问题,可以通过运行`sudo apt-get update`来更新软件列表,然后使用`sudo apt-get install liblz4-tool`来安装`liblz4`工具。类似地,如果出现`xmllint`找不到的错误,需要安装`libxml2-utils`,命令为`sudo apt-get install libxml2-utils`。 2. Jack-Server问题: 这是编译过程中的关键问题,可能导致编译终止。错误可能表现为`SSL error when connecting to the Jack server.`。为解决这个问题,首先可以运行`jack-admin dump-report`生成报告以帮助诊断。通过`./prebuilts/sdk/tools/jack-admin list-server`检查Jack-Server的状态,如果未启动,可以使用`jack-admin start-server`启动它,如果已启动,使用`jack-admin kill-server`关闭。 更深层次的问题可能与Java的SSL配置有关。在`/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/security/java.security`文件中,找到`jdk.tls.disabledAlgorithms`配置项,移除`TLSv1`, `TLSv1.1`,以及可能的`SSLv3`。这是因为这些版本的SSL/TLS协议可能被禁用,从而导致连接到Jack-Server失败。修改配置后,重启系统(`sudo reboot`),然后进行`make clean`,以清除之前的编译状态,并重新尝试编译。 即使解决了SSL问题,有时仍然可能出现`no Jack server running`的错误。这可能需要更深入的调试,比如确保Jack-Server相关的依赖和服务正常运行。在编译Android系统之前,确保所有必要的环境和服务都配置正确是非常重要的。 编译Android系统涉及到众多步骤和依赖,需要对Linux系统和Android构建流程有深入理解。解决这类问题通常需要耐心、细致的排查和适当的网络搜索。遇到问题时,及时查看日志、查找错误信息、更新或安装缺失的库,以及调整系统配置都是必要的步骤。