首先去官网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. 《大规模 web服务开发》笔记

    大规模服务:     可扩展,负载均衡,保证冗余,低运维成本,开发人数和开发方法的变化 数据处理:     磁盘—>内存—>缓存—>CPU 障碍:     持续增长的服务,”无法在内 ...

  2. hbuilder 夜神模拟器调试方法

    1.首先下载好夜神模拟器2.查找已经安装的夜神模拟的端口,这里说一下夜神模拟器默认端口是62001,但是有些版本可能不是这个端口,怎么查找到底是哪个端口呢?按照如下顺序进行就可以查找到你按装的夜神模拟 ...

  3. python 搜集参数

    def print_params(*params): print(params) print_params('Testing')print_params(1,2,3) #参数前的星号将所有值放置在同一 ...

  4. QT5:介绍

    一.简介 QT是一个跨平台的C++开发库,主要用来开发图形用户界面(Graphical User Interface,GUI) QT除了可以绘制漂亮的界面(包括控件/布局/交互),还可以多线程/访问数 ...

  5. webgis技术在智慧城市综合治理(9+X)网格化社会管理平台(综治平台)的应用研究

    综治中心9+X网格化社会管理平台 为落实中央关于加强创新社会治理的要求,适应国家治理体系和治理能力现代化要求,以基层党组织为核心,以整合资源.理顺关系.健全机制.发挥作用为目标,规范街道.社区综治中心 ...

  6. cocos2dx 加密spine文件遇到的问题(暂时没有解决方法)

    今天我研究了一下加密spine动画的加密的方法,图片肯定要加密的,所以我只选择加密图片,另外的一个altas文件和json文件就不做加密打算. 我的思路是通过TexturePacker打包成加密的文件 ...

  7. iOS 绘制1像素的线

    一.Point Vs Pixel iOS中当我们使用Quartz,UIKit,CoreAnimation等框架时,所有的坐标系统采用Point来衡量.系统在实际渲染到设置时会帮助我们处理Point到P ...

  8. Xcode开发技巧

    1.Xcode 中的 Code Snippets 默认放在下面的目录中: ~/Library/Developer/Xcode/UserData/CodeSnippets 2.自定义的代码背景颜色和代码 ...

  9. 对象、句柄、ID之间的区别

    对象是C++的概念,C++的类对象 句柄是Windows SDK的概念,指向某种资源的一种“指针”(有时候底层不一定是指针) 资源ID在MFC里仅仅是一个宏,也就是个整数. 其实,句柄是控件在数据结构 ...

  10. vs2005无法附加到进程 系统找不到文件

    用管理员身份打开vs2005. 注意配置.