ubuntu 安卓源码编译环境搭建
2017-01-12 14:16
267 查看
编译环境 ubuntu 16.04 ,下载的最新7.1.1的源码 ,等把这个编译过了再试着编译5.1的 。
初步打算是编出一个镜像 ,然后通过这个镜像创建一个安卓虚拟机 ,这样就相当于模拟出一个安卓设备来 ,然后在这个设备上做一些多用户的开发 。
1、先安装环境 ,直接按照官网的来 ,没有报错 。
sudo apt-get install openjdk-8-jdk
$ 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 ccache \
libgl1-mesa-dev libxml2-utils xsltproc unzip
2、同步完源码后 ,开始编译,依然按照官网的来 。
make clobber
. build/envsetup.sh //这里的 . 后面还有个空格啊
lunch //选1
make //没有使用 j4 ,因为老是感觉一旦使用多线程很快就会报错
3、遇到了recipe for target ‘out/build-aosp_arm.ninja’ failed的错误
把虚拟机的内存和cpu调高到3g和4核,重启后可以用了 。
猜测是ninja运行的时候内存不够导致的 。
4、报错
FAILED: out/target/common/obj/JAVA_LIBRARIES/core-all_intermediates/dex-dir/classes.dex
/bin/bash out/target/common/obj/JAVA_LIBRARIES/core-all_intermediates/dex-dir/classes.dex.rsp
Communication error with Jack server (56). Try ‘jack-diagnose’
ninja: build stopped: subcommand failed.
build/core/ninja.mk:84: recipe for target ‘ninja_wrapper’ failed
make: * [ninja_wrapper] Error 1
使用 http://www.cnblogs.com/Ph-one/p/5993992.html 的方法 :
修改prebuilts/sdk/tools/jack-admin:
JACK_SERVER_COMMAND=”java -XX:MaxJavaStackTraceDepth=-1 -Djava.io.tmpdir=TMPDIRJACK_SERVER_
VM_ARGUMENTS -cp LAUNCHERJARLAUNCHER_NAME”
java虚拟机内存大小自由分配;
JACK_SERVER_COMMAND=”java -XX:MaxJavaStackTraceDepth=-1 -Djava.io.tmpdir=TMPDIRJACK_SERVER_
VM_ARGUMENTS -Xmx4096m -cp LAUNCHERJARLAUNCHER_NAME”
手动分配4096 ;
5、依然报错 ,尝试 jack-admin start-server
6、放弃使用ubuntu16.04 ,换为14.04,除了jdk要换为1.7 ,目前编译没有问题 。Android7.0系统编译工具链使用了全新的Jack server来取代以往的编译器工具,以后再学习这种编译方式 。
7、到此为止 ,新出现的问题再开一篇讨论 。
初步打算是编出一个镜像 ,然后通过这个镜像创建一个安卓虚拟机 ,这样就相当于模拟出一个安卓设备来 ,然后在这个设备上做一些多用户的开发 。
1、先安装环境 ,直接按照官网的来 ,没有报错 。
sudo apt-get install openjdk-8-jdk
$ 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 ccache \
libgl1-mesa-dev libxml2-utils xsltproc unzip
2、同步完源码后 ,开始编译,依然按照官网的来 。
make clobber
. build/envsetup.sh //这里的 . 后面还有个空格啊
lunch //选1
make //没有使用 j4 ,因为老是感觉一旦使用多线程很快就会报错
3、遇到了recipe for target ‘out/build-aosp_arm.ninja’ failed的错误
把虚拟机的内存和cpu调高到3g和4核,重启后可以用了 。
猜测是ninja运行的时候内存不够导致的 。
4、报错
FAILED: out/target/common/obj/JAVA_LIBRARIES/core-all_intermediates/dex-dir/classes.dex
/bin/bash out/target/common/obj/JAVA_LIBRARIES/core-all_intermediates/dex-dir/classes.dex.rsp
Communication error with Jack server (56). Try ‘jack-diagnose’
ninja: build stopped: subcommand failed.
build/core/ninja.mk:84: recipe for target ‘ninja_wrapper’ failed
make: * [ninja_wrapper] Error 1
使用 http://www.cnblogs.com/Ph-one/p/5993992.html 的方法 :
修改prebuilts/sdk/tools/jack-admin:
JACK_SERVER_COMMAND=”java -XX:MaxJavaStackTraceDepth=-1 -Djava.io.tmpdir=TMPDIRJACK_SERVER_
VM_ARGUMENTS -cp LAUNCHERJARLAUNCHER_NAME”
java虚拟机内存大小自由分配;
JACK_SERVER_COMMAND=”java -XX:MaxJavaStackTraceDepth=-1 -Djava.io.tmpdir=TMPDIRJACK_SERVER_
VM_ARGUMENTS -Xmx4096m -cp LAUNCHERJARLAUNCHER_NAME”
手动分配4096 ;
5、依然报错 ,尝试 jack-admin start-server
6、放弃使用ubuntu16.04 ,换为14.04,除了jdk要换为1.7 ,目前编译没有问题 。Android7.0系统编译工具链使用了全新的Jack server来取代以往的编译器工具,以后再学习这种编译方式 。
7、到此为止 ,新出现的问题再开一篇讨论 。
相关文章推荐
- ubuntu下安卓源码编译环境的搭建
- ubuntu 12.10搭建RTEMS开发环境(源码包编译)
- unix网络编程 ubuntu下搭建环境编译源码
- android源码编译环境搭建(VMware9.0.1+ubuntu12.10)
- ubuntu 13.10搭建MTK android源码编译环境
- Webrtc 系列之一: ubuntu 下webrtc的环境搭建 和编译为安卓APK
- Linux(ubuntu14.04)上编译Android4.4源码的环境搭建及编译
- Ubuntu下Android源码编译及Eclipse开发环境搭建
- Ubuntu编译源码搭建PHP开发环境
- ubuntu 13.10搭建MTK android源码编译环境
- Ubuntu 14.04 LNMP源码编译环境搭建 Nginx-1.9.1 PHP-5.6.9 Mariadb-10.0.19 完整教程
- Android源码开发(1)---- 如何在Ubuntu 11.10中搭建Android编译开发环境
- Ubuntu 12.04 中android4.0 源码编译环境搭建
- 【环境搭建005】UBUNTU13.04 android4.08 源码编译实践中遇到的问题
- ubuntu 10.04 android 源码编译开发环境搭建
- 一、tiny4412开发板Android环境搭建之编译安卓源码
- Android 源码编译环境搭建(64位Ubuntu)各种依赖包安装