ubuntu 16.04 编译android 7.1,jack报错

本文提供了解决在Ubuntu 16.04环境下编译Android 7.1时遇到的Jack服务错误的方法。通过修改.bashrc文件、删除jack-server目录及调整源码中的jack-admin和jack_server_setup.mk文件,可以有效解决Jack服务通信错误。

ubuntu 16.04 编译android 7.1,jack报错

Writing client settings in /home/nikos/.jack-settings
Installing jack server in "/home/nikos/.jack-server"
Communication error with Jack server (58), try 'jack-diagnose' or see Jack server log

参考众多文章,以下3步基本ok:

1.修改.bashrc

    vim ~/.bashrc

    增加下面这行

    export ANDROID_JACK_VM_ARGS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xms2560m"

2.删掉jack-server目录

    jack-admin  kill-server

    rm ~/.jack-server/ -rf

3.修改7.1源码

  

  1 diff --git a/prebuilts/sdk/tools/jack-admin b/prebuilts/sdk/tools/jack-admin
  2 index ee193fc..86f88f0 100755
  3 --- a/prebuilts/sdk/tools/jack-admin
  4 +++ b/prebuilts/sdk/tools/jack-admin
  5 @@ -26,7 +26,7 @@ umask 077
  6  JACK_HOME="${JACK_HOME:=$HOME/.jack-server}"
  7  CLIENT_SETTING="${CLIENT_SETTING:=$HOME/.jack-settings}"
  8  TMPDIR=${TMPDIR:=/tmp}
  9 -JACK_SERVER_VM_ARGUMENTS="${JACK_SERVER_VM_ARGUMENTS:=-Dfile.encoding=UTF-8 -XX:+TieredCompilation}"
 10 +JACK_SERVER_VM_ARGUMENTS="${JACK_SERVER_VM_ARGUMENTS:=-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4096M}"
 11  JACK_EXTRA_CURL_OPTIONS=${JACK_EXTRA_CURL_OPTIONS:=}
 12 
 13  LAUNCHER_JAR="$JACK_HOME/launcher.jar"
 14 @@ -451,7 +451,7 @@ case $COMMAND in
 15      if [ "$RUNNING" = 0 ]; then
 16        echo "Server is already running"
 17      else
 18 -      JACK_SERVER_COMMAND="java -XX:MaxJavaStackTraceDepth=-1 -Djava.io.tmpdir=$TMPDIR $JACK_SERVER_VM_ARGUMENTS -cp $LAUNCHER_JAR $LAUNCHER_NAME"
 19 +      JACK_SERVER_COMMAND="java -XX:MaxJavaStackTraceDepth=-1 -Djava.io.tmpdir=$TMPDIR $JACK_SERVER_VM_ARGUMENTS -Xmx4096m -cp $LAUNCHER_JAR $LAUNCHER_NAME"
 20        echo "Launching Jack server" $JACK_SERVER_COMMAND
 21        (
 22          trap "" SIGHUP
 23 diff --git a/prebuilts/sdk/tools/jack_server_setup.mk b/prebuilts/sdk/tools/jack_server_setup.mk
 24 index e10fd23..fd6a134 100644
 25 --- a/prebuilts/sdk/tools/jack_server_setup.mk
 26 +++ b/prebuilts/sdk/tools/jack_server_setup.mk
 27 @@ -22,7 +22,7 @@ jack_server_jar := $(LOCAL_PATH)/jack-server-$(jack_server_version).jar
 28  ifneq ($(ANDROID_JACK_VM_ARGS),)
 29  jack_vm_args := $(ANDROID_JACK_VM_ARGS)
 30  else
 31 -jack_vm_args := -Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4096m
 32 +jack_vm_args := -Dfile.encoding=UTF-8 -XX:+TieredCompilation
 33  endif
 34  available_jack_jars := $(wildcard $(LOCAL_PATH)/jacks/jack-*.jar)
 35 
 36 @@ -41,9 +41,9 @@ setup-jack-server: $(JACK) $(LOCAL_PATH)/jack-launcher.jar $(jack_server_jar) $(
 37  ifndef jack_server_disabled
 38     @echo Ensure Jack server is installed and started
 39  ifneq ($(dist_goal),)
 40 -   # $(hide) $(PRIVATE_JACK_ADMIN) stop-server 2>&1 || (exit 0)
 41 -   # $(hide) $(PRIVATE_JACK_ADMIN) kill-server 2>&1 || (exit 0)
 42 -   # $(hide) $(PRIVATE_JACK_ADMIN) uninstall-server 2>&1 || (exit 0)
 43 +   $(hide) $(PRIVATE_JACK_ADMIN) stop-server 2>&1 || (exit 0)
 44 +   $(hide) $(PRIVATE_JACK_ADMIN) kill-server 2>&1 || (exit 0)
 45 +   $(hide) $(PRIVATE_JACK_ADMIN) uninstall-server 2>&1 || (exit 0)
 46  endif
 47     $(hide) $(PRIVATE_JACK_ADMIN) install-server $(PRIVATE_PATH)/jack-launcher.jar $(PRIVATE_SERVER_JAR)  2>&1 || (exit 0)
 48  ifneq ($(dist_goal),)

  参考文章:

https://blog.youkuaiyun.com/qq_27061049/article/details/70156200

https://blog.youkuaiyun.com/MENGHUANBEIKE/article/details/53323157

https://blog.youkuaiyun.com/luvzhan/article/details/53282968

https://www.cnblogs.com/Ph-one/p/5993992.html

 

<think>嗯,用户现在在找RK3288平台上编译安卓7.1的教程或解决方案。首先,我需要回想一下之前提供的引用内容,看看有没有相关的信息。引用1提到了Android7.1编译需要Java8,还有Jack编译问题;引用2和3是有关双屏异触和LCD开发的,可能不太相关;引用4是编译报错,特别是Flex工具的问题。用户之前的问题可能已经涉及过一些编译问题,现在需要更详细的教程。 接下来,我需要整理RK3288编译Android7.1的步骤。首先,确保环境配置正确,比如Java8,这很重要,因为Android7.1依赖这个版本。然后,获取源码,可能需要从Rockchip的仓库克隆,并切换到正确的分支,比如rk3288_android7.1。接下来是编译前的配置,比如lunch命令选择合适的目标,比如rk3288_box-userdebug。然后执行make命令开始编译。 另外,常见问题需要涵盖Java版本错误、Jack编译问题,以及Flex工具报错。用户提到的引用4中的Flex问题,解决方法可能是安装特定版本的Flex或者设置Locale。还有编译过程中可能遇到的其他错误,比如驱动或内核配置问题,需要参考Rockchip的文档。 还要注意用户可能需要特定的驱动或内核配置,比如DRM框架相关的,引用3提到的drivers/gpu/drm/rockchip下的文件,可能需要检查这些部分是否正确配置。同时,引用2提到的日志打印问题,可能在调试编译错误时需要查看日志,所以建议用户遇到具体错误时如何排查。 最后,生成相关问题需要考虑用户可能的后续疑问,比如驱动调试、系统烧录、双屏配置、内核编译等。这些都能帮助用户进一步解决问题,确保他们有一个完整的开发流程支持。</think>根据RK3288平台Android 7.1系统编译需求,结合Rockchip官方文档和实际开发经验,整理步骤如下: ### 一、RK3288 Android 7.1编译步骤 1. **环境准备** - Ubuntu 16.04 LTS (推荐64位系统) - Java 8环境配置(必须使用OpenJDK 8): ```shell sudo apt-get install openjdk-8-jdk export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 ``` - 安装必要工具链: ```shell sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev libgl1-mesa-dev libxml2-utils xsltproc unzip ``` 2. **源码获取** ```shell repo init -u https://gitlab.com/rockchip-android/rk/platform/manifest.git -b rk3288_android7.1 repo sync -j4 ``` 3. **编译配置** ```shell source build/envsetup.sh lunch rk3288_box-userdebug # 根据设备类型选择target make -j8 ``` ### 二、常见问题解决方案 1. **Java版本冲突** - 若出现`Jack server installation not found`错误,需确认环境变量已指向Java 8: ```shell export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 export PATH=$JAVA_HOME/bin:$PATH ``` 2. **Flex工具报错[^4]** - 遇到`flex-2.5.39: loadlocale.c:130`错误时: ```shell export LC_ALL=C make clean make -j8 ``` 3. **驱动相关配置** - LCD驱动开发需关注DRM框架代码: ```c // 路径:drivers/gpu/drm/rockchip/rockchip_drm_drv.c static const struct drm_ioctl_desc rockchip_ioctls[] = { DRM_IOCTL_DEF_DRV(...) }; ``` ### 三、编译产物处理 编译成功后生成以下关键文件: ``` out/target/product/rk3288_box/ ├── boot.img # 内核镜像 ├── system.img # 系统镜像 └── rockdev/ # Rockchip专用烧录文件 ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值