飞凌RK3399编译Android7.1出现的问题

问题一:make: *** [ninja_wrapper] Error 1

此问题判断为jackserver服务未运行
log记录如下:

Launching Jack server java -XX:MaxJavaStackTraceDepth=-1 -Djava.io.tmpdir=/tmp -Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx8192m -cp /home/doit/.jack-server/launcher.jar com.android.jack.launcher.ServerLauncher
Jack server failed to (re)start, try 'jack-diagnose' or see Jack server log
SSL error when connecting to the Jack server. Try 'jack-diagnose'
SSL error when connecting to the Jack server. Try 'jack-diagnose'
[  5% 2114/36097] target thumb C++: li...2 <= external/skia/src/core/SkDraw.cpp
ninja: build stopped: subcommand failed.
build/core/ninja.mk:148: recipe for target 'ninja_wrapper' failed
make: *** [ninja_wrapper] Error 1 

解决方法

第一步:

如果使用虚拟机中安装docker的方式编译,请从第一部分开始,如果使用虚拟机直接编译,或者使用linux主机,请跳过第一部分,直接执行第二部分。

第一部分 重新安装docker镜像及创建容器
按docker手册加载镜像,注意第二章按以下执行。
创建目录:
mkdir -p /home/forlinx/OK3399-android
cd /home/forlinx/OK3399-android
将docker_image.tar.bz2复制到/home/forlinx/OK3399-android目录下
验证压缩包完整性,与 docker_image.tar.bz2-md5sum.txt 对比,命令如下
md5sum docker_image.tar.bz2
释放压缩包
tar xvf docker_image.tar.bz2
加载镜像
docker load -i ok3399_android_16.04.tar.bz2
查看加载的镜像 id 和名字
docker images ls -a
结果如下
ok3399_android_16.04 latest 7af3f17d08e6 2 months ago 1.07GB
创建并运行容器
docker run -it --name test_ubuntu --privileged=true --cap-add=SYS_ADMIN -v /home/forlinx/OK3399-android:/home/forlinx/OK3399-android -p 10022:22 7af3f17d08e6 bin/bash
创建并进入容器之后切换到forlinx用户
su forlinx
forlinx用户密码为forlinx
注意源码的解压要在第一部分完成后进行,不然在编译的时候会有权限问题。

第二部分释放源码及修改配置代码
将用户资料中的源码压缩包全复制到linux系统中(如果使用docker容器需要放在映射文件夹下)。
使用7za x OK3399-android7-source.7z.001 -r -o./ -y命令解压源码

进入源码目录,顺序执行下面命令
cd prebuilts/sdk/tools/
sudo ./jack-admin install-server jack-launcher.jar jack-server-4.8.ALPHA.jar
sudo chown forlinx:forlinx -R /home/forlinx
vi prebuilts/sdk/tools/jack-admin
在android/prebuilts/sdk/tools/目录下找到jack-admin,打开该文件

JACK_HOME=“KaTeX parse error: Expected '}', got 'EOF' at end of input: {JACK_HOME:=HOME/.jack-server}”
CLIENT_SETTING=“KaTeX parse error: Expected '}', got 'EOF' at end of input: …LIENT_SETTING:=HOME/.jack-settings}”
TMPDIR= T M P D I R : = / t m p J A C K S E R V E R V M A R G U M E N T S = " {TMPDIR:=/tmp} JACK_SERVER_VM_ARGUMENTS=" TMPDIR:=/tmpJACKSERVERVMARGUMENTS="{JACK_SERVER_VM_ARGUMENTS:=-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx3g}" 黄色部分为新添加的内容,注意前面要有空格。
JACK_EXTRA_CURL_OPTIONS=${JACK_EXTRA_CURL_OPTIONS:=}

start-server)
if [ ! -d “$JACK_HOME” ]; then
echo “Jack server installation not found” >&2
abort
fi

如果是使用的19年的资料,还需要进行如下修改。其他版本资料不需要。
isServerRunning
RUNNING= ? i f [ " ? if [ " ?if["RUNNING" = 0 ]; then
echo “Server is already running”
else
JACK_SERVER_COMMAND="java -XX:MaxJavaStackTraceDepth=-1 -Djava.io.tmpdir=$TMPDIR $JACK_SERVER_VM_ARGUMENTS -Xmx3g -cp $LAUNCHER_JAR $LAUNCHER_NAME"找到如上代码部分,添加红色内容,注意前后都有空格。

修改完成后保存退出并退回到源码根目录。执行如下
prebuilts/sdk/tools/jack-admin stop-server 2>&1 > /dev/null
prebuilts/sdk/tools/jack-admin cleanup-server 2>&1 > /dev/null
prebuilts/sdk/tools/jack-admin start-server 2>&1 > /dev/null
完成之后按照软件手册进行编译即可。

第二步

在如下文件中修改

/etc/java-8-openjdk/security/java.security

找到jdk.tls.disabledAlgorithms,删除TLSv1, TLSv1.1,然后执行如下命令重启jack-admin。

cd /prebuilts/sdk/tools/
./jack-admin kill-server
./jack-admin start-server
第三步

为保险起见,将虚拟机内存设为8G。
在这里插入图片描述

问题二 /bin/bash: xmllint: 未找到命令

log记录

/bin/bash: xmllint: 未找到命令
[  7% 1503/20872] Building with Jack: out/target/common/obj/JAVA_L...ES/android-support-compat-jellybean-mr2_intermediates/classes.jack
ninja: build stopped: subcommand failed.
build/core/ninja.mk:148: recipe for target 'ninja_wrapper' failed
make: *** [ninja_wrapper] Error 1

解决方法

安装如下工具即可

sudo apt-get  install libxml2-utils

问题三 缺少gcc-multilib

问题log没有记录,但判定为缺少工具,安装如下工具即可

sudo apt-get install gcc-multilib
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Victor随笔集

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值