首先去官网http://source.android.com/source/initializing.html可以看到完整的安装教程。不过一般情况下,按照这个教程是无法一步到位的,因为中途肯定会遇到很多问题。这里我把我遇到的问题以及相应的解决方案总结一下:

1、sudo apt-get install git gnupg flex bison gperf build-essential \ zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \libgl1-mesa-dev g++-multilib mingw32 tofrodos \ python-markdown libxml2-utils xsltproc zlib1g-dev:i386

   遇到错误如下:

The following packages have unmet dependencies:
g++-multilib : Depends: gcc-multilib (>= 4:4.6.3-1ubuntu5) but it is not going to be installed
Depends: g++-4.6-multilib (>= 4.6.3-1~) but it is not going to be installed
libgl1-mesa-dev : Depends: mesa-common-dev (= 8.0.2-0ubuntu3) but it is not going to be installed
libgl1-mesa-glx : Depends: libglapi-mesa (= 8.0.2-0ubuntu3)
Recommends: libgl1-mesa-dri (>= 7.2)
libx11-dev : Depends: libxcb1-dev but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

这是因为当前系统的gcc版本过高引起的,我们需要将gcc版本降低到4.4,解决方法如下:

①安装低版本的gcc和g++
 使用gcc4.4 版本进行编译.首先安装低版本的gcc和g++
 sudo apt-get install gcc-4.4
 sudo apt-get install g++-4.4
 
 ②装完后进入到/usr/bin目录下,更改gcc,g++链接
 $ cd /usr/bin
 $ ls -l gcc*
lrwxrwxrwx 1 root root      7 Jan 10 18:19 gcc -> gcc-4.6
-rwxr-xr-x 1 root root 259232 Apr 16  2012 gcc-4.4
-rwxr-xr-x 1 root root 353216 Apr 16  2012 gcc-4.6

发现gcc 链接到gcc-4.6,  需要将它改为链接到gcc-4.4 :
 $ sudo mv gcc gcc.bak                    ----先备份gcc-4.6
 $ sudo ln -s gcc-4.4 gcc

同理,仍然在/usr/bin目录下
 $ ls -l g++*
lrwxrwxrwx 1 root root      7 Mar 14  2012 g++ -> g++-4.6
-rwxr-xr-x 1 root root 263328 Apr 16  2012 g++-4.4
-rwxr-xr-x 1 root root 357312 Apr 16  2012 g++-4.6
 
 需要将g++链接改为g++-4.4:
$ sudo mv g++ g++.bak                   ----先备份g++-4.6
$ sudo ln -s g++-4.4 g++
 
 再查看gcc和g++版本号:
$ gcc -v
$ g++ -v

均显示gcc version 4.4,说明gcc 4.4安装成功。

③、gcc降到4.4后错误
a. 提示bits/predefs.h:没有那个文件或目录错误的
$ sudo apt-get install gcc-multilib 即可

b. g++: selected multilib '32' not installed错误
No private recovery resources for TARGET_DEVICE crespo
host Executable: acp (out/host/linux-x86/obj/EXECUTABLES/acp_intermediates/acp)
host Executable: aapt (out/host/linux-x86/obj/EXECUTABLES/aapt_intermediates/aapt)
g++: selected multilib '32' not installed
make: *** [out/host/linux-x86/obj/EXECUTABLES/acp_intermediates/acp] Error 1
make: *** Waiting for unfinished jobs....
host SharedLib: libESR_Shared (out/host/linux-x86/obj/lib/libESR_Shared.so)
g++: selected multilib '32' not installed
make: *** [out/host/linux-x86/obj/lib/libESR_Shared.so] Error 1
g++: selected multilib '32' not installed
make: *** [out/host/linux-x86/obj/EXECUTABLES/aapt_intermediates/aapt] Error 1

解决:
$ sudo apt-get install g++-4.4-multilib

2、sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1/usr/lib/i386-linux-gnu/libGL.so

3、然后就是按照http://source.android.com/source/downloading.html里面的步骤一次执行。不过在使用命令

repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1 和 repo sync

的时候,可能会报错。出错了就需要将源码目录下的.repo整个文件夹删除,然后重新初始化和同步!注意:最好在命令前加上sudo 免得出现权限问题!!!

4、现在就开始下载源代码了。慢慢等待吧~

Ubuntu12.04 64bit版本下载Android源码完整教程的更多相关文章

  1. [odroid-pc] ubuntu12.04 64bit Android4.0.3 源码编译报错及解决的方法

    第一个错误:         host Executable: cmu2nuance (out/host/linux-x86/obj/EXECUTABLES/cmu2nuance_intermedia ...

  2. Ubuntu12.04编译Android4.0.1源码全过程-----附wubi安装ubuntu编译android源码硬盘空间不够的问题解决

    昨晚在编译源码,make一段时间之后报错如下: # A fatal error has been detected by the Java Runtime Environment: # # SIGSE ...

  3. ubuntu10.04版本下android源码的编译

    首先是网址:http://software.intel.com/en-us/blogs/2012/03/06/hands-on-notesbuild-android-x86-ics-4-virtual ...

  4. 【Linux/Ubuntu学习6】unbuntu 下载android源码

    在Windows下安装Cygwin,通过Cygwin也可在Windows里通过本文的下载步骤下载Android源码. 以下为在Ubuntu下下载Google Android4.4源码的步骤: 1. 安 ...

  5. 下载android源码

    http://source.android.com Step 1.按照http://source.android.com/source/initializing.html配置好android编译环境 ...

  6. Windows平台下载Android源码(整理)

    Google官方下载源码使用的系统Ubuntu系统,不过现在我们需要在Windows系统中下载Android源码文件. 网站的地址是:https://android.googlesource.com/ ...

  7. 通过清华大学镜像下载Android源码并编译源码

    之前看源码都是在Windows下用SourceInsight看,虽然达到了研究源码的效果,但终究还是有遗憾...趁着周末,准备在Ubuntu虚拟机上下载编译源码. 之前下源码时,有了解一些Androi ...

  8. 使用清华大学开源软件镜像AOSP的“每月更新初始化包”更新指定版本的Android源码

    参照官方教程:Tsinghua Open Source Mirror 1. 下载了repo工具 mkdir  ~/bin PATH = ~/bin:$PATH curl  https://storag ...

  9. [Android] repo 下载Android源码(国内镜像)

    reference : http://blog.csdn.net/shenlan18446744/article/details/51490560 repo 下载Android源码(国内镜像) 下载r ...

随机推荐

  1. JS实现全排列

    https://www.jb51.net/article/39291.htm JavaScript全排列的六种算法 具体实现 算法一:交换(递归) 复制代码代码如下: <html xmlns=& ...

  2. 反射中 invoke方法 getMethod方法 getClass()方法

    package com.swift; import java.util.*; import java.lang.reflect.*; public class ReflectDemo { public ...

  3. C# 使用Epplus导出Excel [4]:合并指定行

    C# 使用Epplus导出Excel [1]:导出固定列数据 C# 使用Epplus导出Excel [2]:导出动态列数据 C# 使用Epplus导出Excel [3]:合并列连续相同数据 C# 使用 ...

  4. vuePress的使用

    今天来玩一玩vuePress的使用,用markdown来编辑一个页面网站,这里谈论到了简单使用,细节可以去官网上去查看 开始安装 项目依赖 // package.json { "name&q ...

  5. DNS 工作原理是什么,域名劫持、域名欺骗、域名污染又是什么

    DNS 工作原理是什么,域名劫持.域名欺骗.域名污染又是什么 2014年11月27日 10:05:40 阅读数:6726 标签: dns网络互联网顶级域名递归 更多 个人分类: 网络学习   一.DN ...

  6. (73)zabbix用户认证方式 内建、HTTP Basic、LDAP

    公司大大小小众多系统,不同系统不同的账号密码,管理上相当复杂,后来慢慢出现了SSO等账号统一验证,其他zabbix也提供了类似的方法,或许有些公司便可以使用公司提供的账号来登录zabbix了. zab ...

  7. composer安装laravel-u-editor及其使用

    前言  使用的框架是laravel5.1,是composer搭建的,可以直接配置composer,如果不是composer搭建的larave,需要先安装composer,具体安装发放可以参考compo ...

  8. k8s 基于NFS部署storageclass pv自动供给

    在k8s中部署有状态应用时,通常需要做数据持久化存储. 后端存储的方式有以下几种: 1.基于宿主机本地的存储方式: (重启pod时,若pod被调度到其他节点上,尽管原来节点上的数据不会丢失,但是其他节 ...

  9. destoon 支付异步接口文件 notify.php 调试方式

    在if($verify_result) { 之前复制这三个变量 就可以直接访问notify.php 启用调试模式 或者 逐步echo 相关变量来调试 错误原因   notify.php没有入口文件 是 ...

  10. 树莓派编译ncnn

    1.从github上下载ncnn git clone --recursive https://github.com/Tencent/ncnn 2.在ncnn根目录下创建build目录,安装cmake编 ...