笔者在编译android4.4的时候碰到过很多错误,现在总结一下。
其实笔者编译出错最主要的原因是因为装了32位的Ubuntu系统,结果编译的时候出现了一些错误,比如无法执行二进制文件之类。官方既然推荐使用64的Ubuntu,咱还是别和它较劲了。换了64位Ubuntu后,笔者编译时就很畅通了。除此之外一定要保证虚拟机有足够的硬盘空间,笔者就是编到后面没空间了,后来吧.repo这个下载源码时的目录删除了,腾出了几G空间,然后继续编译成功,下面记录编译过程:
1. 下载JDK1.6
这是官方推荐的,跟着走吧,谁让咱是用他们的产品呢,去官网那个下载linux版本的JDK,相信你可以轻松搞定
2. 安装JDK1.6
笔者是用root用户登录ubuntu,
mkdir /usr/lib/java 创建java目录,
将下载的jdk-6u45-linux-x64.bin文件拷贝到 /usr/lib/java 目录下,
进入到/usr/lib/java目录,添加使用该jdk文件的权限 sudo chmod u+x ./jdk-6u45-linux-x64.b
执行该文件 ./jdk-6u45-linux-x64.bin,安装中...
3. 配置JDK1.6环境
配置要细心点哦,不然容易导致登录ubuntu系统失败哦.
(1) gedit /etc/environment 编辑该文件中的内容
打开该文件,看到会有PATH="...",Path中的路径是以:分开的
PATH=".:/usr/lib/java/jdk1.6.0_45/bin" 将jdk的bin目录加入PATH
CLASSPATH=.:$JAVA_HOME\lib\tools.jar:$JAVA_HOME\lib\dt.jar 配置CLASSPATH
JAVA_HOME="/usr/lib/java/jdk1.6.0_45" 配置JAVA_HOME
保存关闭,回到终端
(2) 系统可能有其他软件好友java、javac命令,那么让jdk的命令为默认命令,如下输入命令:
sudo update-alternatives --install /usr/bin/java java /usr/lib/java/ jdk1.6.0_45/bin/java 300
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/java/ jdk1.6.0_45/bin/javac 300
sudo update-alternatives --config java
(3) 输入java -version 验证配置成功
(4) 为了是配置对所有用户有效,还需做如下配置:
sudo gedit /etc/profile
在文件后面添加上如下内容:
JAVA_HOME=/usr/lib/java/jdk1.6.0_45
export JRE_HOME=/usr/java/jdk1.6.0_45/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
(5) 到此为止JDK安装成功,可自行测试编译
4. 编译源码还需装其他软件,如下:
sudo apt-get install git-core gnupg flex bison gperf build-essential \
zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs \
x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev \
libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown \
libxml2-utils xsltproc5
5. 进入源码目录,执行如下命令
cd /home/whisper/android4.4
source build/envsetup.sh
lunch full-eng
make -j4 ... 开始编译,等待吧.. 这行命令可根据自己机器配置来选择,直接决定了编译时间,笔者cpu只有双核
6. 编译成功,打开模拟器
终端输入emulator命令即可
注:如果编译时退出过终端则直接输入emulator是不会打开模拟器,需做如下操作:
(1) 进入源码目录 cd android4.4
(2) source build/envsetup.sh
(3) lunch
(4) 选择编译时的目标 笔者是 full-eng
(5) emulator 启动模拟器
到此为止,android4.4 源码成功编译。笔者先乐呵一下 。