编译AOSP遇到的问题

权限遭拒 
由于博客使用了外部硬盘作为out编译输出,make时提示Permission is denied。这时换成sudo make即可。

使用外部磁盘做out输出:export OUT_DIR_COMMON_BASE=/media/username/外部磁盘路径/out

内存不足 
由于笔者的内存只有4G,并且最开始没有分出swap分区,导致多次内存不足编译失败,有多种日志形式都表明内存不足:

[ 34% 12287/35393] Building with Jack: out/target/common/obj/JAVA_LIBRARIES/core-all_intermediates/with-local/classes.dex 
FAILED: /bin/bash out/target/common/obj/JAVA_LIBRARIES/core-all_intermediates/with-local/classes.dex.rsp 
Communication error with Jack server (52). Try 'jack-diagnose' 
ninja: build stopped: subcommand failed. 
make: *** [ninja_wrapper] Error 1

[ 82% 30024/36285] Aligning zip: out/target/product/shamu/obj/SHARED_LIBRARIES/libdlext_test_runpath_zip_zipaligned_intermediates/libdlext_test_runpath_zip_zipaligned.zip 
[ 82% 30025/36285] Import includes file: out/target/product/shamu/obj/STATIC_LIBRARIES/libverifier_intermediates/import_includes 
[ 82% 30026/36285] target thumb C++: libverifier <= bootable/recovery/asn1_decoder.cpp 
[ 82% 30027/36285] target thumb C++: libverifier <= bootable/recovery/verifier.cpp 
[ 82% 30028/36285] Export includes file: -- out/target/product/shamu/obj/STATIC_LIBRARIES/libverifier_intermediates/export_includes 
[ 82% 30029/36285] target thumb C++: libverifier <= bootable/recovery/ui.cpp 
ninja: fatal: fork: Cannot allocate memory 
make: *** [ninja_wrapper] Error 1

FAILED: /bin/bash out/target/common/obj/JAVA_LIBRARIES/core-all_intermediates/with-local/classes.dex.rsp 
Out of memory error (version 1.2-rc4 'Carnac' (298900 f95d7bdecfceb327f9d201a1348397ed8a843843 by android-jack-team@google.com)). 
GC overhead limit exceeded. 
Try increasing heap size with Java option '-Xmx<size>'. 
Warning: This may have produced partial or corrupted output. 
[ 31% 11494/36285] host C++: libartd-compiler <= art/compiler/optimizing/graph_visualizer.cc 
[ 31% 11494/36285] Building with Jack: out/target/common/obj/JAVA_LIBRARIES/libprotobuf-java-nano_intermediates/classes.jack 
[ 31% 11494/36285] build out/target/common/obj/JAVA_LIBRARIES/sdk_v21_intermediates/classes.jack 
ninja: build stopped: subcommand failed.

[ 6% 2375/35393] target Java: icu4j (out/target/common/obj/JAVA_LIBRARIES/icu4j_intermediates/classes) 
Note: Some input files use or override a deprecated API. 
Note: Recompile with -Xlint:deprecation for details. 
Note: external/icu/icu4j/main/classes/core/src/com/ibm/icu/impl/Relation.java uses unchecked or unsafe operations. 
Note: Recompile with -Xlint:unchecked for details. 
[ 6% 2394/35393] host C++: libLLVMMC_32 <= external/llvm/lib/MC/MCDwarf.cppninja: fatal: fork: Cannot allocate memory 
make: *** [ninja_wrapper] Error 1

[  5% 1883/35393] Docs droiddoc: out/target/common/docs/api-stubs
FAILED: /bin/bash out/target/common/docs/api-stubs-timestamp.rsp
OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000bdb80000, 72876032, 0) failed; error='Cannot allocate memory' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 72876032 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /home/michaelx/AOSP_NBD91Z/hs_err_pid508.log
[  5% 1883/35393] Docs droiddoc: out/target/common/docs/system-api-stubs
DroidDoc took 27 sec. to write docs to out/target/common/docs/system-api-stubs
ninja: build stopped: subcommand failed.
make: *** [ninja_wrapper] Error 1

解决内存不足的3个办法:

  1. 增加机器内存
  2. 增加swap分区
  3. 修改prebuild/sdk/tools/jack-admin文件

第一种方式就不说了,给机器加根内存条,壕专享。 
第二种方式:增加swap分区:hancj.blog.51cto.com/89070/19791… 
第三种方式:

# 备份jack-admin
$ cp prebuild/sdk/tools/jack-admin ~/Docments/jack-admin.original# 修改jack-admin文件
$ vim prebuild/sdk/tools/jack-admin# start-server方法,笔者的jack-admin在443行,修改该方法中的一句话:
# JACK_SERVER_COMMAND="java -Djava.io.tmpdir=$TMPDIR $JACK_SERVER_VM_ARGUMENTS -cp $LAUNCHER_JAR $LAUNCHER_NAME"
# 改成下面这行,增加java堆大小。
JACK_SERVER_COMMAND="java -Djava.io.tmpdir=$TMPDIR $JACK_SERVER_VM_ARGUMENTS -Xmx8000M -cp $LAUNCHER_JAR $LAUNCHER_NAME"

以上增加的-Xmx8000M,表示允许java在运行时java堆使用最大不超过8000M内存,这个数值是笔者经历了多次测试得到的结果,2048M,4096M,依旧没通过编译,改成8000M后编译通过,可能跟笔者自身硬件限制有很大关系

另一种修改方式:修改jack-admin第29行的变量:JACK_SERVER_VM_ARGUMENTS="${JACK_SERVER_VM_ARGUMENTS:=-Dfile.encoding-UTF-8 -XX:+TieredCompilation}"
改成:
JACK_SERVER_VM_ARGUMENTS="${JACK_SERVER_VM_ARGUMENTS:=-Dfile.encoding-UTF-8 -XX:+TieredCompilation -Xmx8000M}"
但是这种修改方式仍然不好使,编译失败了。

笔者是尝试了第二,三种方式解决。

jack-server无法运行 
错误日志如下: 
[ 37% 13421/35393] 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 -XX:+TieredCompilation\" prebuilts/sdk/tools/jack-admin start-server 2>&1 || exit 0 ) && (prebuilts/sdk/tools/jack-admin update server prebuilts/sdk/tools/jack-server-4.8.ALPHA.jar 4.8.ALPHA 2>&1 || exit 0 ) && (prebuilts/sdk/tools/jack-admin update jack prebuilts/sdk/tools/jacks/jack-2.28.RELEASE.jar 2.28.RELEASE || exit 47; prebuilts/sdk/tools/jack-admin update jack prebuilts/sdk/tools/jacks/jack-3.36.CANDIDATE.jar 3.36.CANDIDATE || exit 47; prebuilts/sdk/tools/jack-admin update jack prebuilts/sdk/tools/jacks/jack-4.7.BETA.jar 4.7.BETA || exit 47 )" 
Jack server already installed in "/home/michaelx/.jack-server" 
Launching Jack server java -XX:MaxJavaStackTraceDepth=0 -Djava.io.tmpdir=/tmp -Dfile.encoding=UTF-8 -XX:+TieredCompilation -cp /home/michaelx/.jack-server/launcher.jar com.android.jack.launcher.ServerLauncher 
Jack server failed to (re)start, try 'jack-diagnose' or see Jack server log 
No Jack server running. Try 'jack-admin start-server' 
No Jack server running. Try 'jack-admin start-server' 
[ 37% 13421/35393] target thumb C++: libicui18n <= external/icu/icu4c/source/i18n/coptccal.cpp 
[ 37% 13421/35393] target thumb C++: libicui18n <= external/icu/icu4c/source/i18n/compactdecimalformat.cpp 
[ 37% 13421/35393] target thumb C++: libicui18n <= external/icu/icu4c/source/i18n/cpdtrans.cpp 
ninja: build stopped: subcommand failed.

解决Jack server failed to (re)start办法:

$ cd /prebuild/sdk/tools/$ jack-admin stop-server
$ jack-admin start-server

编译Android8.1.0. AOSP遇到的问题(Communication error with Jack server)(Out of memory error)相关推荐

  1. Android编译错误 Jack server failed to ,SSL error when connecting to the Jack server. Try ‘jack-diagnose‘

    一.编译android sdk 出现下面的错误 Jack server failed to (re)start,try 'jack-diagnose' or see Jack server log,S ...

  2. Android使用Jack编译报错:communication error with Jack server (58) 解决方法

    Android7.0系统编译工具链使用了全新的Jack server来取代以往的编译器工具 Jack is a new Android toolchain that compiles Java sou ...

  3. Android系统编译之Communication error with Jack server (35), try ‘jack-diagnose‘ or see Jack server log

    jack server failed 场景 个人分析 网上分析 分析1 分析2 原因1:权限问题 原因2:端口占用 原因3:删除 TLSv1, TLSv1.1 测试结论 解决方案 说明 相关链接 场景 ...

  4. android8.1内核编译,Android8.1.0安卓源码编译

    换中科大源18.04 由于新安装的Ubuntu默认配置为Ubuntu官方源,基本软件包下载速度较慢,下面修改软件源: 备份下sources.list sudo cp /etc/apt/sources. ...

  5. Jack Server--Android N AOSP编译--Failed to contact Jack server

    准备 今天正式担任Android7.0(N)项目模块的开发和维护工作,借此机会git和make了一套系统代码用来研究.在编译的过程中,与以往系统不同的是Android7.0系统编译工具链使用了全新的J ...

  6. Ubuntu aosp 编译过程中Jack server SSL error 错误解决方法

    编译aosp 大概率会出现jack server 跑不起来然后抛一个类似这样的错误 [ 10% 538/4980] Ensuring Jack server is installed and star ...

  7. open ssl android编译,aosp 编译过程中Jack server SSL error 错误解决方法

    编译aosp 大概率会出现jack server 跑不起来然后抛一个类似这样的错误[ 10% 538/4980] Ensuring Jack server is installed and start ...

  8. Android7.0新特性Jack server

    准备 今天正式担任Android7.0(N)项目模块的开发和维护工作,借此机会git和make了一套系统代码用来研究.在编译的过程中,与以往系统不同的是Android7.0系统编译工具链使用了全新的J ...

  9. ubuntu20编译android o jack server问题记录

    报错如下: FAILED: setup-jack-server  /bin/bash -c "(prebuilts/sdk/tools/jack-admin install-server p ...

最新文章

  1. 5个最佳的Android测试框架
  2. 比较好用的python编译器_10个最好用的在线编译工具
  3. Java的知识点28——文件编码、IO流的实例
  4. DIP第六章习题解答
  5. PyCharm使用指南及更改Python pip源为国内豆瓣
  6. RocketMq Producer最佳实践
  7. 如何制作流畅有力的游戏动画+Skullgirls案例分析
  8. Coinbase在上市前选择在Reddit线上路演
  9. kaggle比赛语言java_Kaggle调查:2018年数据科学家最常用(和最推荐)的编程语言榜单...
  10. 802.1x客户端 linux,Gentoo Linux--校园网(802.1x)拨号认证客户端解决方案
  11. win10系统无打印机服务器,Print Spooler服务未在Windows 10中运行
  12. 四凯模型火箭发动机参数大全
  13. 框架设计--第二章 Spring中的Bean--习题答案
  14. logmein测试准备
  15. java定义苹果类Apple_Java开发笔记(七十)Java8新增的几种泛型接口
  16. Python 实现键鼠操作
  17. c#配合c++调节屏幕亮度,非伽马以及RGB方案
  18. 温度测量基于c语言,基于PN结的温度测量系统设计论文(C语言)--189876772.doc
  19. 三维图像专业处理软件Dragonfly 应用-如何计算面孔隙率
  20. Depix:还原马赛克工具的试用及总结

热门文章

  1. 基于tensorflow、keras利用emnist数据集构建CNN卷积神经网络进行手写字母识别
  2. 传法拉第未来面临11起诉讼 涉及金额共计8000万美元
  3. 04747java答案_自考04747《java语言程序设计(一)》课后习题答案全集
  4. 大学计算机李凤霞课本百度云,北京理工大学李凤霞教授来校讲学
  5. 花一个星期的时间上岸字节跳动,也算是努力没白费吧
  6. 非卡尔曼滤波融合陀螺仪和加速度计数据,kalman gyroscope accelerometer
  7. 万字好文!几乎包含了市面上所有启动优化方案
  8. clover直接进windows_mac osx黑苹果安装过程。CLOVER默认启动win10,CLOVER引导分辨率不正确解决方法。...
  9. 计算机科技文化节宣传标语,科技节标语
  10. PCI-DSS基础教程