这是我在编译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源码下载和编译过程,布布扣,bubuko.com
原文:http://www.cnblogs.com/earendil/p/3829913.html