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
  • bless1108
  • bless1108
  • 2016年03月23日 16:18
  • 3202

ubuntu16.04 编译android6.0遇到的两个错误解决办法

编译出错 bash: prebuilts/misc/linux-x86/ccache/ccache: 没有那个文件或目录 Cannot launch Jack Server...
  • moonlehehe
  • moonlehehe
  • 2017年04月09日 20:36
  • 367

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

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

firefox.exe

  进程知识库 firefox - firefox.exe - 进程信息进程文件: firefox 或者 firefox.exe进程名称: Mozilla Firefox  描述:firefox.ex...
  • ProcessInfo
  • ProcessInfo
  • 2007年12月03日 08:41
  • 386

VS2015配置open3.3.0

之前一直用的VS2010 + opencv2.4.9,有点落后了,电脑也比较差,这次索性咬咬牙,整了台联想拯救者,win10系统,安装了VS2015,下载了最新的open3.3。 安装配置过程如下: ...
  • helimin12345
  • helimin12345
  • 2017年10月25日 23:24
  • 245

使用Ubuntu16下载编译Android6.0源码

一、环境准备 本人使用VirtualBox安装Ubuntu16系统。 1、安装git、curl 2、使用curl下载repo。(repo实际是一个用来下载源码的python脚本) 二、下载 ...
  • a992036795
  • a992036795
  • 2016年12月05日 09:52
  • 2888

Google Nexus5关于Android 6.0源码的同步,编译和烧写

关于Ubuntu下Android开发的环境搭建这里就不在详述啦,下面所提到的主要是一些关键点, repo工具的下载和使用 mkdir ~/bin PATH=~/bin:$PATH curl h...
  • mzoneseven
  • mzoneseven
  • 2015年11月19日 17:15
  • 1448

cuda,常量内存使用2

#include #include "cuda_runtime.h" #include "device_launch_parameters.h" #include #include "assert...
  • qq_16699519
  • qq_16699519
  • 2016年03月24日 16:53
  • 525

linux运行run文件显示cannot execute binary file

需要检查一下这个文件是否 shell 脚本, 如果是shell脚本, 才可以使用 “sh ***.run”的形式执行。 如果本身是一个可执行的命令程序, 不需要使用 sh, 直接加上执行权限, 执行...
  • qq_21398167
  • qq_21398167
  • 2015年06月09日 14:36
  • 16769

Android6.0源码编译

环境要求OS macos 10.11.6安装repo 安装curl 安装git 1. 新建一个用于存放下载脚本文件的目录 mkdir ~/bin PATH...
  • dodan
  • dodan
  • 2016年12月29日 09:41
  • 998
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Ubuntu 16 下载、编译Nexus 6 Android6.0源码记录
举报原因:
原因补充:

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