Android8.1 ifw方案,RK系列Android 8.1编译过程

安装环境: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

你可能感兴趣的:(Android8.1,ifw方案)