安装环境:Ubuntu 16.04
系统要求: 16G内存 300G硬盘
1.下载git包,或者初始包。
2.解压该初始包,默认要添加公钥,具体见sdk附录。ssh-keygen -t rsa -C "user@host"
2.1 安装git工具 sudo apt-get install git
2.2 将密钥放入到~/.ssh 中,
3.在解压后的文件中.repo/repo/repo sync -l .repo/repo/repo sync -c
4.安装编译环境:
然后需要配置java8,这里需要使用openjdk
sudo apt-get install openjdk-8-jdk
sudo apt-get install openjdk-8-jre
注意配置完成之后,用java -version检查一下jdk版本,如果不是open-jdk,就需要切换程Open-jdk的版本。
接着是安装依赖的库
sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev g++-multilib
sudo apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386
sudo apt-get install tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386
sudo apt-get install dpkg-dev libsdl1.2-dev libesd0-dev
sudo apt-get install git-core gnupg flex bison gperf build-essential
sudo apt-get install zip curl zlib1g-dev gcc-multilib g++-multilib
sudo apt-get install libc6-dev-i386
sudo apt-get install lib32ncurses5-dev x11proto-core-dev libx11-dev
sudo apt-get install libgl1-mesa-dev libxml2-utils xsltproc unzip m4
sudo apt-get install lib32z-dev ccache
sudo apt-get install liblz4-tool
5. 配置环境变量
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
6.代码编译
6.1 uboot 编译步骤
cd u-boot
make rk3399pro_defconfig
./mkv8.sh
6.2kernel 编译步骤
RK3399Pro evb 配置与编译如下:
cd kernel
make ARCH=arm64 rockchip_defconfig -j8
make ARCH=arm64 rk3399pro-evb-v10.img -j12
6.3 android 编译:
source build/envsetup.sh
lunch rk3399pro-userdebug
make -j12
./mkimage.sh
在此编译过程中出现该错误:
No Jack server running. Try 'jack-admin start-server'
[ 71% 59034/82708] //art/runtime:libart clang++ gc/heap.cc [linux x86]
ninja: build stopped: subcommand failed.
21:10:41 ninja failed with: exit status 1
#### failed to build some targets (01:28:09 (hh:mm:ss)) ####
jack_server端口有问题:
解决方法:
jack-server 配置
Android8.1 系统使用 jack-server 作为 java 代码编译器,在编译过程中可能会遇到以下类似
的错误:
Jack server already installed in "/home/yhx/.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 的两个配置文件(yhx 为对应用户的用户名),决定了它所使用的端口号
/home/yhx/.jack-server/config.properties
/home/yhx/.jack-settings
这两个配置文件需要配置两个端口号,分别为服务端端口号,及客户端端口号,两个配置文件
中的端口号要匹配。
jack.server.service.port=8074
jack.server.admin.port=8075
及
SERVER_PORT_SERVICE=8074
SERVER_PORT_ADMIN=8075
配置步骤如下:
1) 确保两个配置文件存在,并且权限设置为 0600:
chmod 0600 /home/yhx/.jack-server/config.properties
chmod 0600 /home/yhx/.jack-settings
2) 若两个配置文件不存在,请参照以下文本新建这两个配置文件。
config.properties 文件示例如下(端口号需按实际修改):
jack.server.max-jars-size=104857600
jack.server.max-service=4
jack.server.service.port=8074
jack.server.max-service.by-mem=1\=2147483648\:2\=3221225472\:3\=42
94967296
jack.server.admin.port=8075
jack.server.config.version=2
jack.server.time-out=7200
.jack-settings 文件示例如下(端口号需按实际修改):
# Server settings
SERVER_HOST=127.0.0.1
SERVER_PORT_SERVICE=8074
SERVER_PORT_ADMIN=8075
# Internal, do not touch
SETTING_VERSION=4
3) 修改端口号,请更改 service port 及 admin port 为其他端口号,两个配置文件里的端
口号需要匹配。示例如下:
jack.server.service.port=8023
jack.server.admin.port=8024
SERVER_PORT_SERVICE=8023
SERVER_PORT_ADMIN=8024
4) 重新编译 Android,看是否会报错,若依然报错,请尝试更改其他端口号,直至编译通过。
5) 若更改 5 次编译依然无法通过,可以执行 jack-admin dump-report 命令,解压命令生
成的压缩包,分析 log 日志,若出现以下 log,可以重新安装下 libcurl:
$ JACK_EXTRA_CURL_OPTIONS=-v jack-admin list server
* Protocol https not supported or disabled in libcurl
* Closing connection -1
Communication error with Jack server 1. Try ‘jack-diagnose’
编译过程出现该错误:
Out of memory error (version 1.3-rc7 'Douarn' (445000 d7be3910514558d6715ce455ce0861ae2f56925a by [email protected])).
GC overhead limit exceeded.
Try increasing heap size with java option '-Xmx'.
Warning: This may have produced partial or corrupted output.
[ 44% 5002/11226] Compiling SDK Stubs wi...stubs_current_intermediates/classes.jac
ninja: build stopped: subcommand failed.
03:28:38 ninja failed with: exit status 1
解决方案:
https://www.cnblogs.com/dirt2/p/5431508.html(试了不太好使)
https://blog.csdn.net/qq_21445563/article/details/92123330(好使)
export JACK_SERVER_VM_ARGUMENTS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4g"
./prebuilts/sdk/tools/jack-admin kill-server
./prebuilts/sdk/tools/jack-admin start-server