Ubuntu 16 下载、编译Nexus 6 Android6.0源码记录

原创 2016年06月02日 09:26:38

    前一阵将Ubuntu从14升级到了16,首先做的就是把导航栏从左侧移到了下面,呵呵,Windows用习惯了。

    这里就讲一下下载、编译nexus 6的Android6.0源码过程遇到的问题。

    其实官网已经讲的很详细了,英文好的建议到安卓源码官网 开始按左侧栏目从上往下,依次预览整体流程、建立编译环境、下载源码,编译源码blabla,按步骤一步步操作即可。英文不好的建议去搜索引擎搜别人分享的编译经验吧。我这里主要分享下完全按照官网的下载、编译顺序操作时仍然遇到的,但是官网没提示解决方案的问题。

    编译环境:Ubuntu 16(64位),Open jdk8。

问题一:编译报错 提示Java版本错误   解决方法:

Ubuntu16默认使用的JDK是Open jdk8,而编译Nexus6 的6.0源码需要Open jdk7,这时通过apt-get下载不到Open jdk7!因为Ubuntu 16已经将它从源码库里移除了,解决方法是手动添加仓库再下载安装:

sudo add-apt-repository ppa:openjdk-r/ppa  
sudo apt-get update   
sudo apt-get install openjdk-7-jdk

  

问题二:编译报错recipe for target 'out/host/linux-x86/obj/lib/libart.so' failed 解决方法:

clang编译器导致的问题,修改方法是在art/build/Android.common_build.mk ,中将host 默认编辑器使用clang关掉,找到WITHOUT_HOST_CLANG,关闭clang即可。

# Host

ART_HOST_CLANG := false

ifneq ($(WITHOUT_HOST_CLANG),true)

# By default, host builds use clang for better warnings.

ART_HOST_CLANG := false

endif


问题三:编译报错 ERROR:Cannot launch Jack Server   解决方法:

Android M引入了Jack (Java Android Compiler Kit),在编译时会启动jack server,优化编译速度等。
如果遇到jack编译错误,可以把$HOME/.jack中的配置文件中的SERVER=true设成false,不用jack,jack现在还不稳定。

问题四:这个问题之前只是编译模拟器所以没发现,最近把自己的nexus6备份好,准备刷入系统时才发现,就是lunch时明明选择的21(aosp_shamu-userdebug),结果一到make就变成了默认的1(aosp_arm-eng),结果导致编译的模块不能用,甚至连boot.img都没有,暂时解决方法是在make的时候在附加参数里设置TARGET_PRODUCT,  TARGET_ARCH,  TARGET_BUILD_TYPE这些,后期研究出更好的解决方法再贴出来。

问题四更新:其实这个问题应该不算个问题,因为产生这个问题是在普通用户下通过sudo make -j8来执行make命令的,后来编译的时候我将用户切换为root用户执行编译过程,上述问题就不存在了,看官网的执行过程,应该也是以root用户执行的,因为整个过程并没有sudo的存在。




   



   

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

ERROR: Cannot launch Jack server

make: Circular out/target/common/obj/APPS/mediatek-res_intermediates/package-export.apk

jack server 常见错误解决方法

jack 服务常见错误解决

Ubuntu系统下Nexus安装

1.下载nexus:http://www.sonatype.org/nexus/go 可选择下载tgz包或者zip包,这里选择tgz包。 2.将下载包解压 tar -zxvf nexus-2.12.1...

Android系统源码下载与编译、刷机--Nexus6实测

前言 此博文记录一下Android从系统源码下载到刷机的全过程。 (https://source.android.com/source/build-numbers.html 页面中列表信息找到自己...

给定A, B两个整数,不使用除法和取模运算,求A/B的商和余数

给定A, B两个整数,不使用除法和取模运算,求A/B的商和余数。 1.   最基本的算法是,从小到大遍历: for (i = 2 to A -1)          if (i * B > A)...

利用K-means聚类算法根据经纬度坐标对中国省市进行聚类

K-means聚类算法是一种非层次聚类算法,在最小误差的基础上将数据划分了特定的类,类间利用距离作为相似度指标,两个向量之间的距离越小,其相似度就越高。程序读取全国省市经纬度坐标,然后根据经纬度坐标进...

Radon变换理论介绍与matlab实现--经验交流

本人最近在研究Radon变换,在查阅了各种资料之后在此写下个人的理解,希望与各位牛牛进行交流共同进步,也使得理解更加深刻些。 Radon变换的本质是将原来的函数做了一个空间转换,即,将原来的XY平...

CT图像重建技术

由于csdn贴图不方便,并且不能上传附件,我把原文上传到了资源空间CT图像重建技术 1.引言 计算机层析成像(Computed Tomography,CT)是通过对物体进行不同角度的射线投影测量而...

Matlab绘图-很详细,很全面

Matlab绘图强大的绘图功能是Matlab的特点之一,Matlab提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基本参数就能得到所需图形,这类函数称为高层绘图函数。此外,Ma...

linux查找目录下的所有文件中是否含有某个字符串

查找目录下的所有文件中是否含有某个字符串  find .|xargs grep -ri "IBM"  查找目录下的所有文件中是否含有某个字符串,并且只打印出文件名  find .|xargs g...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Ubuntu 16 下载、编译Nexus 6 Android6.0源码记录
举报原因:
原因补充:

(最多只允许输入30个字)