1、JDK 安装
Android8.1 系统编译依赖于 JAVA 8。编译之前需安装 OpenJDK。
安装命令如下:
sudo apt-get install openjdk-8-jdk
执行如下命令配置环境变量:
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
SDK 带有 Open JDK8 的配置脚本,在工程根目录下,命名为 javaenv.sh。
可直接执行以下命令,配置 JDK:
source javaenv.sh
2、SDK编译
执行自动编译脚本:
./build.sh
Android8.1 系统使用 jack-server 作为 java 代码编译器,在编译过程中可能会遇到以下类似的错误:
Jack server already installed in "/home/jiajia/.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 时,需要配置各自使用不同的网络端口号。
jack-server 的两个配置文件,决定了它所使用的端口号:
~/.jack-server/config.properties
~/.jack-settings
这两个配置文件需要配置两个端口号,分别为服务端端口号,及客户端端口号,两个配置文件中的端口号要匹配。
jack.server.service.port=8074
jack.server.admin.port=8075
及
SERVER_PORT_SERVICE=8074
SERVER_PORT_ADMIN=8075
配置步骤如下:
确保两个配置文件存在,并且权限设置为 0600:sudo chmod 0600 ~/.jack-server/config.properties
sudo chmod 0600 ~/.jack-settings
修改端口号,请更改 service port 及 admin port 为其他端口号,两个配置文件里的端口号需要匹配。示例如下:
jack.server.service.port=8023
jack.server.admin.port=8024
SERVER_PORT_SERVICE=8023
SERVER_PORT_ADMIN=8024
重新编译 Android,看是否会报错,若依然报错,请尝试更改其他端口号
更改其他端口号最多五次,仍然报错则修改 java.security 文件配置
/etc/java-8-openjdk/security/java.security
打开此路径的配置文件,找到如下一行内容,并将 “ TLSv1, TLSv1.1, ”删除后保存
修改前: jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5withRSA
修改后: jdk.tls.disabledAlgorithms=SSLv3, RC4, DES, MD5withRSA
切换到Android编译源码项目目录:prebuilts/sdk/tools ,并运行如下命令:
./jack-admin kill-server
./jack-admin start-server
重新编译Android SDK注:如果到此仍不能编译通过,可能需要重装系统了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)