虽然在source.android.com的网站上有具体的安装和编译过程,但是使用这个步骤安装时,还是遇到很多问题。现在就说一说我的步骤吧。我的Ubuntu是11.04 32位的desktop版本,是目前最新的版本。我是在vmware中安装的,建议使用虚拟机。

第一步:安装Ubuntu,出现了一个比较傻的问题,由于原来没有用过Ubuntu,其实Ubuntu的有些版本是没有安装界面的。试了很多次在知道使用ubuntu 的desktop版本就行,这是我遇到的第一个问题,我试了几个版本才知道。还有关于64位的问题,当我安装Ubuntu64位的时候,虚拟机提示cup没有VT功能,所以装64位打算也落空了,还是装32位吧。

第二步:安装Jdk ,这里出现了一个小问题,就是我执行下面的语句时出错:

$ sudo add-apt-repository "deb-src http://archive.canonical.com/ubuntu lucid partner"

出现下面的错误信息,

Error: 'deb-src http://archive.canonical.com/ lucid partner' invalid

我检查了一下,发现在system的update manager中,点击setting界面,看到有我们的 加入的资源库,同时还包括资源库的源,但是源的地址不上上面的,我想是不是在11.04中地址变化了,反正不去管他。继续安装

jdk的安装都是其他没有遇到问题,还是挺顺利的。

第三步:安装需要的包文件。

执行的时候还是报错,有几个包定位不到。其中包括:

lib32ncurses5-dev ia32-libs
lib32readline5-dev lib32z-dev
我从网上搜了一下,这是64位编译使用的包文件,我安装的是32位,所以可能找不到。如果你是32位的系统,可以执行下面的语句

sudo apt-get install git-core gnupg flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev openjdk-6-jdk ant gcc-multilib g++-multilib
这样,编译的环境就基本上搞定了,可以开始下载源代码了。

第四步:下载源代码

步骤和执行命令参考http://source.android.com/source/downloading.html这里但是下载文件太多了,经常中断,你会发现有时候进度条好半天不动了。

Fetching projects:  61% (113/185)  
Initializing project platform/external/zlib ...
remote: Counting objects: 544, done.
remote: Compressing objects: 100% (300/300), done.
remote: Total 544 (delta 243), reused 530 (delta 235)
Receiving objects: 100% (544/544), 714.24 KiB | 32 KiB/s, done.
Resolving deltas: 100% (243/243), done.
From git://android.git.kernel.org/platform/external/zlib

在屏幕想可以打出下载的进度,我们可以看到一共有185个项目,现在是61%。我看到不动了,我就自己终止,重新同步。同步程序会检测已经同步的程序,接着开始。我这样做了很多次,不知道是网络的问题还是这个程序效率的问题。中间还从出现了fetal error错误的提示。在这里用到两个程序repo和git,git是分布式版本管理工具。为了管理git上的分布式项目,google使用pythen编写了一个脚本repo。我查看了git的版本,是1.7.4,最新的1.7.6,我更新了git版本,解决了这个错误。这个错误可能是我经常终止的结果,或许是有。后来等呀等,还是没有下载玩,都好几天了,决定写一个程序来解决这个问,目的是当同步失败是可以重新开始,这需要在ubuntu中写shell脚本,随便使用一个编辑工具,写一段程序,如下:

#!/bin/bash
echo "============start repo sync================="
repo sync
while [ $? = 1 ]; do
echo "============sync failed, re-sync again ====="
sleep 3
repo sync
done

将文件命名位repoSync吧,修改文件属性,使他可以执行:

chmod +x repoSync

^_^,可以自己执行了,要是早有这个方法就好了,很简单的。效果很明显的。

第五步:终于要编译了

按照官网上的帮助都没有问题,但是执行make后,出现了一个问题

build/core/binary.mk:25: *** external/stlport: Invalid LOCAL_NDK_VERSION '4' Choices are .  Stop.

这个问题后面的文章说吧。


Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐