2016-9-14: Ubuntu 16.04 下载和编译android 6 源码
我的源码不是repo下来的,而是从百度盘down下来的。
链接:http://pan.baidu.com/s/1qXXw6h2
密码:3qaa
我都是在root情况下操作
1、配置jdk
apt-get install openjdk-7-jdk
在/etc/profile 文件末尾加上:
JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
export JAVA_HOME
export PATH
2、配置依赖软件
apt-get install bison g++-multilib git gperf libxml2-utils make python-networkx zlib1g-dev:i386 zip
--> 可能出现问题
E: Unable to correct problems, you have held broken packages
解决方法:
apt-get install g++-multilib
apt-get install bison git gperf libxml2-utils make python-networkx zlib1g-dev:i386 zip
3、配置Cache
apt-get install ccache
source ~/.bashrc
4、编译源码
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
4.1、初始化编译环境
. build/envsetup.sh
4.2、选择编译目标包
lunch
1 = aosp_arm-eng
4.3、编译
make -j4
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
编译源码过程中出现问题:
make: *** 没有规则可以创建“out/target/product/generic/obj/GYP/shared_intermediates/angle/id/commit.h”需要的目标“external/chromium_org/third_party/angle/.git/index”。 停止。
make: *** 正在等待未完成的任务....
Export includes file: external/chromium_org/GypAndroid.linux-arm.mk -- out/target/product/generic/obj/STATIC_LIBRARIES/mojo_mojo_service_provider_bindings_gyp_intermediates/export_includes
原因:
我的源码是从其他出copy过来的,而不是从服务器上repo下来的,所以缺少了一些文件
解决方法:
修改文件:external/chromium_org/third_party/angle/src/commit_id.target.linux-arm.mk
如下:
24 $(gyp_shared_intermediate_dir)/angle/id/commit.h: $(gyp_shared_intermediate_dir)/angle/commit_id.py
25 #$(LOCAL_PATH)/third_party/angle/.git/index $(GYP_TARGET_DEPENDENCIES)
再次去编译源码
参考文章
Android实战技巧之四十:Android5.1.1源代码编译与烧写