您的位置:首页 > 移动开发 > Android开发

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、到此为止 ,新出现的问题再开一篇讨论 。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息