这是我在编译android源码时整理记录的编译步骤和错误解决方法,期间参考了一些网上的博客和教程。

第一步:

安装ubuntu12.04,分配一盘空间50G,2G内存。如果分配1G内存编译时将报错。(我是在虚拟机中安装ubuntu,分配了50G空间,编译源码需要空间较大,建议分配50G或更多,使用wubi安装最大只能分配30G)。

第二步:

安装JDK,此处选用JDK版本为JDK6-6u29 32位,下载链接http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase6-419409.html。下载jdk-6u29-linux-i586.bin。

1、在终端执行sudo su命令 输入密码进入root用户。

2、执行将文件jdk-6u29-linux-i586.bin复制到/usr/lib/jvm/java目录下,(若目录不存在则建立该目录,建立命令为mkdir /usr/lib/jvm/java)。

3、执行命令 ./ jdk-6u29-linux-i586.bin 执行该文件

4、修改环境变量 在/etc/profile 文件末尾添加如下几行:

5、执行source /etc/profile命令使之生效。

6、执行 java –version

出现 java version 1.6.0_29即可。确保当前JDK版本为1.6.0

注:/etc目录下environment profile bashrc的区别详情见:

http://blog.csdn.net/chenchong08/article/details/7833242

7、安装编译所需的包。

执行apt-get install git-core gnupg flex bison gperf build-essential

apt-get install zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev

apt-get install libglapi-mesa-dev

apt-get install libx11-dev:i386

apt-get install libreadline6-dev:i386

apt-get install libgl1-mesa-glx:i386

apt-get install libgl1-mesa-dev

apt-get install g++-multilib mingw32

apt-get install tofrodos

apt-get install  python-markdown

apt-get install libxml2-utils

apt-get install xsltproc

apt-get install zlib1g-dev:i386

8、安装repo

执行如下命令

apt-get install curl

apt-get install git

在/home/pc目录下创建android文件夹用于保存android源码和repo

执行如下命令:

mkdir /home/pc/android/android4.0 将源码保存在android下

在/etc/profile/最后添加如下代码

export PATH=$PATH:/home/pc/android

source /etc/profile

执行如下命令:

cd /home/pc/android

下载repo并修改权限

curl http://git-repo.googlecode.com/files/repo-1.13 >/home/pc/android/repo

chmod a+x repo

9、下载android源码

repo init -u https://android.googlesource.com/platform/manifest

在执行过程中需要输入用户名和邮箱

执行命令:

repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.4_r1

(注:android版本参考:https://android.googlesource.com/platform/manifest/+refs

执行命令:

repo sync

10、编译源码

进入源码目录下执行如下命令:

make showcommands 这样可以显示编译命令,使得编译的时候,屏幕没有输出的时候,不会感觉无聊吗

遇到的错误及解决方法:

ERROR:   /bin/bash: line 2: javadoc: command not found

解决方法:执行:ln -s -f /usr/lib/jvm/java/jdk1.6.0_29/bin/javadoc /bin/javadoc

顺便可以做一下软连接,不然还会遇到类似错误:

ln -s -f /usr/lib/jvm/java/jdk1.6.0_29/bin/jar /bin/jar

ln -s -f /usr/lib/jvm/java/jdk1.6.0_29/bin/java /bin/java

ln -s -f /usr/lib/jvm/java/jdk1.6.0_29/bin/javah /bin/javah

ln -s -f /usr/lib/jvm/java/jdk1.6.0_29/bin/javac /bin/javac

Android源码下载和编译过程的更多相关文章

  1. android源码下载以及编译自己的ROM

    android源码下载以及编译自己的ROM 最近发现kernel.org被墙了,为什么这种网站也能被墙了? 要想下载源码的话,只能绕过去了.下面是我从网上搜索到的一些下载方法: =========== ...

  2. Android学习系列(38)--Android源码下载和编译

    前面多篇文章介绍到如何下载和编译Android或者CM源码,不过一直都是放在<拓展系列>里.随着学习的深入,android源码是非常有参考和学习价值,强烈推荐大家都去下载,编译,学习,所以 ...

  3. Android源码、内核编译

    Android源码和内核的编译就是一场马拉松,每一个节点都耗时漫长,下载源码.编译源码.下载内核.编译内核,下载中途会断掉,编译中间会失败,求解再重来,又是一轮马拉松,于是每一步都要做好备份和记录,可 ...

  4. [Android 源码] Android源码下载

    Android源码下载 为了能够顺利的下载Android的源码,同时也为了避免在网络上再次搜寻如何下载源码的麻烦,我把下载过程记录在这篇文档中. 官网中也有详细的介绍: http://source.a ...

  5. Android源码下载方法详解

    转自:http://www.cnblogs.com/anakin/archive/2011/12/20/2295276.html Android源码下载方法详解 相信很多下载过内核的人都对这个很熟悉 ...

  6. Harmony OS 开发避坑指南——源码下载和编译

    Harmony OS 开发避坑指南--源码下载和编译 本文介绍了如何下载鸿蒙系统源码,如何一次性配置可以编译三个目标平台(Hi3516,Hi3518和Hi3861)的编译环境,以及如何将源码编译为三个 ...

  7. 驾照理论模拟考试系统Android源码下载

    ‍‍‍驾照理论模拟考试系统Android源码下载 <ignore_js_op> 9.png (55.77 KB, 下载次数: 0) <ignore_js_op> 10.png ...

  8. Android源码下载

    Android源码下载 1.安装git 2.安装repo 从这里 https://dl-ssl.google.com/dl/googlesource/git-repo/repo 下载repo文件 3. ...

  9. android源码下载/查看地址

    源码下载: http://git.omapzoom.org/ 高通平台android源码下载地址: https://www.codeaurora.org/xwiki/bin/QAEP/WebHome ...

随机推荐

  1. python之MySQL学习——防止SQL注入(参数化处理)

    import pymysql as ps # 打开数据库连接 db = ps.connect(host=', database='test', charset='utf8') # 创建一个游标对象 c ...

  2. 手动爬虫之流程笔记1(python3)

    一.引入拓展库 由于刚刚起步学习爬虫,故从urllib库开始 首先引入urllib,这里主要用到urllib中request类 import urllib.request as ur 二.设置全局参数 ...

  3. REDO 的内容:改变向量

    REDO 的内容 ---改变向量 redo的内容并不是sql语句,他是放的一些改变,叫改变向量. 数据库恢复的时候并不是执行sql语句,而是一个物理的过程,是一个数据块的覆盖.是改变数据块的大小. 可 ...

  4. app返回之前app焦点的操作方法

    var hdWin,hdfocus: THandle; trdID: Cardinal; //获取前置app窗口句柄 hdWin := GetForegroundWindow;//FindWindow ...

  5. ArcGIS runtime sdk for wpf 授权

    这两天由于runtime sdk for wpf的授权和runtime sdk 其他产品的授权的不一样导致自己混乱不堪. 总结下吧. sdk 简介 当前ArcGIS runtime sdk 包括一系列 ...

  6. Python(数据库安装与基本语句)

    一.数据库相关概念 1.两种硬件扩展方式 a.垂直扩展:针对一台计算机 b.水平扩展:多台普通计算机 2.数据库相关概念 数据库服务器(本质就是一个台计算机,该计算机之上安装有数据库管理软件的服务端) ...

  7. DRF(4) - 认证、权限组件

    一.引入 通过前面三节课的学习,我们已经详细了解了DRF提供的几个重要的工具,DRF充分利用了面向对象编程的思想,对Django的View类进行了继承,并封装了其as_view方法和dispatch方 ...

  8. mysql 内置功能 函数 date_format函数

    创建数据库db12 create database db12 charset=utf8; use db12; 准备表和记录 CREATE TABLE blog ( id INT PRIMARY KEY ...

  9. nodejs升级的两种方法

    方法一: 用n升级nodejs # 全局安装n$ npm install -g n# 升级到最新稳定版$ n stable # 升级到最新版$ n latest# 升级到定制版$ n v7.10.0# ...

  10. 同步锁,死锁现象与递归锁,信息量Semaphore.....(Day36)

    一.同步锁 三个需要注意的点: #1.线程抢的是GIL锁,GIL锁相当于执行权限,拿到执行权限后才能拿到互斥锁Lock,其他线程也可以抢到GIL,但如果发现Lock仍然没有被释放则阻塞,即便是拿到执行 ...