jack server 常见错误解决方法

jack 服务常见错误解决方法

  当你编译Android时,你不需要修改任何内容。 Jack是Andriod M的默认编译工具。只需使用标准的makefile命令执行即可。当第一次执行jack时,它会在你的机器上启动一个jack编译服务:
  这个服务大大提高了编译速度,因为它避免了启动一个新的JVM,加载Jack代码,初始化Jack和每次编译都要预制JIT,即使在很小的编译过程中,它也很好的节省了时间(例如,在incremental模式)
这个服务也是一个控制Jack并行编译的短期解决方案。它可以限制编译的并行数据量,这样也可以避免内存硬盘溢出问题
当一段时间没有编译活动,Jack 服务会自动关闭,默认它在本地使用了两个TCP端口,且不对外公开。它也提供了很多参数来配置Jack服务,例如并行数量,timeout时间,端口等等。

1、错误显示

  Android 7.0工程的环境需要加载openJDK 8 ,虽然上篇文档已经描述了openjdk-8的安装方法,但通常和很多ubuntu主机的Jack -server是没有和Android7.0的工程Jack -server相互交互的,Android的工程会提供相应的压缩文件去运行jack-server服务,若要顺利的编译工程,则要ubuntu主机的Jack -server和Android的工程Jack -server相互交互。

在编译过程中会有如下错误信息。
[6% 1127/18030] Ensure Jack server is installed and started

FAILED: /bin/bash -c “(prebuilts/sdk/tools/jack-admin install-server prebuilts/sdk/tools/jack-launcher.jar prebuilts/sdk/tools/jack-server-4.8.ALPHA.jar 2>&1 || (exit 0) ) && (JACK_SERVER_VM_ARGUMENTS=/”-Dfile.encoding=UTF-8

No Jack server running. Try ‘jack-admin start-server’
No Jack server running. Try ‘jack-admin start-server’

bule@sky:~/**/jianwen.fu/V65_An7/prebuilts/sdk/tools$ jack-admin start-server
Launching Jack server java -XX:MaxJavaStackTraceDepth=-1 -Djava.io.tmpdir=/tmp -Dfile.encoding=UTF-8 -XX:+TieredCompilation -cp /home/prayasm/.jack-server/launcher.jar com.android.jack.launcher.ServerLauncher
Jack server failed to (re)start, try ‘jack-diagnose’ or see Jack server log

2、ubuntu主机jack相关配置

.ubuntu主机的本地目录的

  注意在服务器192.168.2.188主目录不存在jack-server,我以自己的主机模拟192.168.2.188环境,下面的命令作为参考;

找个已安装openjdk8环境的Ubuntu主机,把文件拷贝过来,这样的方法比以前编译openjdk8的方法更快速,但依赖关系并不好,风险度高。(也可以自己安装,安装链接http://blog.csdn.net/qq_27061049/article/details/65626930

1)、 scp -r /etc/java-8-openjdk/ bule@192.168.2.244:/etc/
(先传输该文件夹,下面的文件夹中有对此文件的软连接文件)
2)、 scp -r /usr/lib/jvm/java-1.8.0-openjdk-amd64 bule@192.168.2.244:/usr/lib/jvm
3)、scp -r /usr/lib/jvm/java-8-openjdk-amd64/ bule@192.168.2.244:/usr/lib/jvm

如服务器192.168.2.188,Ubuntu用户主目录无.jack .jack-server .jack-setting,那么在192.168.1.15的Ubuntu主机中执行以下命令,边将文件传输到了192.168.2.244主机上。

4)、 scp -r .jack-server/ bule@192.168.2.244:.jack-server
5)、scp -r .jack bule@192.168.2.244:.jack (这个文件很多主机没有)

6)、scp -r .jack-settings bule@192.168.2.244:.jack-settings

(ubuntu 主机 jack 服务相关文件下载地址:http://download.csdn.net/detail/qq_27061049/9817787

将openjdk写入系统的环境和配置编译选项中


7)、 sudo update-alternatives –install /usr/bin/java java /usr/lib/jvm/java-8-openjdk-amd64/bin/java 1081
8)、 sudo update-alternatives –install /usr/bin/java java /usr/lib/jvm/java-8-openjdk-amd64/bin/java 1081
9)、 sudo update-alternatives –install /usr/bin/javac javac /usr/lib/jvm/java-8-openjdk-amd64/bin/javac 1081
10)、sudo update-alternatives –install /usr/bin/javap javap /usr/lib/jvm/java-8-openjdk-amd64/bin/javap 1081
11)、 sudo update-alternatives –install /usr/bin/javah javah /usr/lib/jvm/java-8-openjdk-amd64/bin/javah 1081
12)、 sudo update-alternatives –install /usr/bin/jar jar /usr/lib/jvm/java-8-openjdk-amd64/bin/jar 1081
13)、 sudo update-alternatives –install /usr/bin/javadoc javadoc /usr/lib/jvm/java-8-openjdk-amd64/bin/javadoc 1081

转换为openjdk-8-jre的java环境

14)、 sudo update-alternatives –config javadoc
15)、sudo update-alternatives –config java
16)、 sudo update-alternatives –config javac
17) sudo update-alternatives –config javap
18)、 sudo update-alternatives –config javah
19)、 sudo update-alternatives –config javadoc
20)、 sudo update-alternatives –config jar

3、源码工程jack相关配置

在Android 7.0的工程中进行编译之前,运行如下命令,进行交互。
进入源码相应目录 prebuilts/sdk/tools$
运行下面命令:
1)、 jack-admin start-server
2)、jack-admin kill-server
3)、jack-admin list-server
4)、jack-admin uninstall-server
5)、mm -j32 showcommands &> mm.out
6)、jack-admin install-server jack-launcher.jar jack-server-4.8.ALPHA.jar
7)、jack-admin dump-report
8)、jack-admin dump-re

4、若没有解决尝试其他相关修改:

1)、修改prebuilts/sdk/tools/jack-admin 文件,变量JACK_SERVER_VM_ARGUMENTS,添加参数 -Xmx4096M

JACK_SERVER_VM_ARGUMENTS=”${JACK_SERVER_VM_ARGUMENTS:=-Dfile.encoding=UTF-8 -XX:+TieredCompilation -mx4096M}”

2)、prebuilts/sdk/tools/jack-admin 文件,在 JACK_SERVER_COMMAND=“…… -cp ……” -cp 前添加-Xmx4096m(4096m为内存大小的一半左右,根据所用的主机配置而定)

diff --git a/tools/jack-admin b/tools/jack-admin
index ee193fc..33cb913 100755
--- a/tools/jack-admin
+++ b/tools/jack-admin
@@ -451,7 +451,7 @@ case $COMMAND in
     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 -cp $LAUNCHER_JAR $LAUNCHER_NAME"
+      JACK_SERVER_COMMAND="java -XX:MaxJavaStackTraceDepth=-1 -Djava.io.tmpdir=$TMPDIR $JACK_SERVER_VM_ARGUMENTS -Xmx4096M -cp $LAUNCHER_JAR $LAUNCHER_NAME"
       echo "Launching Jack server" $JACK_SERVER_COMMAND
       (
         trap "" SIGHUP

3)、prebuilts/sdk/tools/README-jack-server.md

-JACK_SERVER_VM_ARGUMENTS="-Xmx2g -Dfile.encoding=UTF-8 -XX:+TieredCompilation" jack-admin start-server
+JACK_SERVER_VM_ARGUMENTS="-Xmx4g -Dfile.encoding=UTF-8 -XX:+TieredCompilation" jack-admin start-server

4)、build/core/configure_local_jack.mk
by changing the line:
LOCAL_JACK_ENABLED := (strip (LOCAL_JACK_ENABLED))
into:
LOCAL_JACK_ENABLED := # (strip (LOCAL_JACK_ENABLED))
““““““““““““““““““““““““““““““““““““““`
5)、把文件$HOME/.jack-server/config.properties的权限由rwx改为rw

6)、同时修改 HOME/.jacksettings HOME/.jack-server/config.properties中的端口号(比如都改为8086/8087),方可支持多用户同时编译。

7)、当在板型目录中的BoardConfig.mk中添加ANDROID_COMPILE_WITH_JACK:=false / DEFAULT_JACK_ENABLED := disabled / ANDROID_FORCE_JACK_ENABLED := disabled来进行关闭JACK
8) 或者在运行编译命令时加入 make -j8 ANDROID_COMPILE_WITH_JACK=false 来关闭jack 服务
9)、添加相应jack-admine 的路径 ,在相应的代码目录下 PATH=./prebuilts/sdk/tools/:$PATH
10)、可以通过运行jack-admin server-log命令来查找jack log 具体分析

文档参考:
Android 7.0工程之预编译jack服务器
http://www.th7.cn/system/lin/201702/202334.shtml

Android7.0 JACK编译器不支持多用户同时编译的问题的解决
http://blog.csdn.net/lizekun2010/article/details/52535591

使用Jack编译
http://blog.csdn.net/pcsxk/article/details/52213784#t5

android N编译
http://blog.csdn.net/luvzhan/article/details/53282968

excel常用函数公式及技巧搜集 从身份证号码中提取出生年月日 从身份证号码中提取出性别 从身份证号码中进行年龄判断 按身份证号号码计算至今天年龄 以2006年10月31日为基准日,按按身份证计算年龄(周岁)的公式 按身份证号分男女年龄段 【年龄和工龄计算】 根据出生年月计算年龄 根据出生年月推算生肖 如何求出一个人到某指定日期的周岁? 计算距离退休年龄的公式 求工齡 计算工龄 年龄及工龄计算自动算出工龄日期格式为(yyyy.mm.dd) 【时间和日期应用】 自动显示当前日期公式 如何在单元格中自动填入当前日期 如何判断某日是否星期天 某个日期是星期几 什么函数可以显示当前星期 求本月天数 显示昨天的日期 关于取日期 如何对日期进行上、中、下旬区分 如何获取一个月的最大天数 日期格式转换公式 【排名及排序筛选】 一个具有11项汇总方式的函数SUBTOTAL 自动排序 按奇偶数排序 自动生成序号 如何自动标示A栏中的数字大小排序? 如何设置自动排序 重复数据得到唯一的排位序列 按字符数量排序 排序字母与数字的混合内容 随机排序 排序的问题 怎样才能让数列自动加数 一个排序问题 数字的自动排序,插入后不变? 根据规律的重复的姓名列产生自动序号 排名的函数 自动排名公式 百分比排名的公式写法为: 平均分及总分排名 求名次排名 排名次根据分数进行普通排名 对于普通排名分数相同时,按顺序进行不重复排名 依分数比高低名次成绩排名 美国式排名 中国式排名 求最精简的自动排名公式 排序后排名 位次排名 根据双列成绩进行共同排名 在双列间排名 等次排名 不等次排名(行小排先) 不等次排名(行大排先) 顺次排名 有并列排名 无并列排名 有并列分段排名 无并列分段排名 成绩排名 如何排名 数据排名(隔几行排名) 根据分数进行倒排名 倒数排名函数是什么 如何实现每日各车间产量的排名 分数相同时按照一科的分数进行排名 筛选后自动产生序列号并汇总 如何筛选奇数行 函数筛选姓名 名次筛选 如何实现快速定位(筛选出不重复值) 如何请在N列中列出A1:L9中每列都存在的数值 自动为性别编号的问题 【文本与页面设置】 EXCEL中如何删除*号 将字符串中的星号“*”替换为其它字符 去空格函数如何去掉字符和单元格里的空格 怎样快速去除表中不同行和列的空格 如何禁止输入空格 代替单元格中字符串 把单元格中的数字转变成为特定的字符格式 把有六百多个单元格的一列,变成一页的多列 将N列变M列公式归纳为 一列变四列 四列变一列 重复四次填充 多行数据排成一列 将单元格一列分为多列 首写字母大写 把单元格编号中的小写字母变成大写字母 让姓名左右对齐 数字居中而小数点又对齐 计算指定单元格编号组中非空单元格的数量 比较两个单元格内容是否一致 怎么样设置才能让这一列的每个单元格只能输入12位 如何让工作表奇数行背景是红色偶数行背景是蓝色 计算特定的一组单元格中,满足条件的单元格的个数 把文本格式的数字转换成真正的数字 设置页码 Excel表格里如何插入页码的? 如何设置页脚首页为第5页 表格的页脚问题 无拘无束的页眉 打印表头 Excel打印中如何不显示错误值符号 对于一些不可打印的字符的处理 用那个函数可将个位数前面的零值显示出来? 如果你要在A3的前面插入100行 请问如何每隔30行粘贴一新行 在工作表里有连续10行数据, 现在要每行间格2行 一个大表每一行下面需要加一行空行,怎么加最方便 Excel中插入空白行 快速删除工作表中的空行快速删除空行一次删完Excel里面多出很多的空白行 每30行为一页并加上一个标题如何实现如何实现隔行都加上标题项 如何把标签页去掉的? 去掉默认的表格线(网线)表格的框线 列标的标识变了 符号的意义 双击格式刷竟也能COPY文本(不是文本格式) 查找+格式刷的妙用 光标移动 最后一行为文本最后一行为数字 如何在EXCEL中快速定位最后一行数据 用SUN函数快速求和 在Excel中快速查看所有工作表公式 在Excel中设置行间距 怎样同时改变多行行高 快速换行 让文本换行 在Excel中行列快速转换 将原有列中的内容倒置过来 快速回到A1单元格 复制粘贴中回车键的妙用 一次选中批注单元格 一次在所有单位格中插入批注 在公式中插入批注 不连续单元格填充同一数据 空白行的填充 怎样用函数向下实现自动填充 怎么设置自动保存 避免输入网址和电子邮件地址时的超链接 单元格前面自动加了等号 加盖公章 查找+格式刷的妙用 Excel中鼠标双击妙用 Excel中快速定位的技巧实例 在Excel中插入Flash时钟的步骤 小写数字转换成人民币大写 轻轻松松制作超复杂Excel表头 【字符截取与增减】 截取单元格里某个字符后的字符 截取字符的公式 如何确定*号
相关推荐
©️2020 CSDN 皮肤主题: 精致技术 设计师:CSDN官方博客 返回首页