Ubuntu10.04启动速度快,桌面环境相较于之前的版本来说更加绚丽。而且ubuntu是免费的,想使用ubuntu的用户,可以从官方网站─下载到最新的ubuntu的ISO镜像,也可以在官方网站申请让总部亲自发给你一张光盘,感受一下ubuntu系统的强大的功能。笔者在Ubuntu10.04系统32位机上安装编译Android2.3源码,其步骤和注意事项如下:
1.安装JDK6
对于Android2.3系统,不要安装JDK5,应该安装最新的JDK6。
如果安装了JDK6,Android会自动按64位编译,如果系统是32位的,会有编译错误,后面会说如何修改这个错误。
- sudoadd-apt-repository"debhttp://archive.canonical.com/lucidpartner"
- sudoadd-apt-repository"deb-srchttp://archive.canonical.com/Ubuntulucidpartner"
- sudoapt-getupdate
- sudoapt-getinstallsun-java6-jdk
- sudoupdate-java-alternatives-sjava-6-sun
安装完后,需要手动设置JAVA_HOME,JRE_HOME,CLASS_PATH为JDK6的安装路径。
2.安装各种包
- $sudoaptitudeinstallgit-coregnupgflexbisongperflibsdl-devlibesd0-devlibwxgtk2.6-devbuild-essentialzipcurllibncurses5-devzlib1g-dev
3.安装Repo
- $mkdir~/bin
- $exportPATH=~/bin:$PATH
- $curlhttp://Android.git.kernel.org/repo>~/bin/repo
- $chmoda+x~/bin/repo
4.下载Android源码
- $mkdir~/Android2.3
- $cd~/Android2.3
- $repoinit-ugit://Android.git.kernel.org/platform/manifest.git
- $reposync
这一步持续时间很长,整个源码+SDK共5G左右,我是下载了一个晚上才搞定,网速不给力啊。。。
5.编译Android2.3
先exportAndroid_JAVA_HOME=$JAVA_HOME
- $cd~/Android2.3
- $sourcebuild/envsetup.sh
- $lunch
- $make
在make的时候会提示出错:
- ************************************************************
- Youareattemptingtobuildona32-bitsystem.
- Only64-bitbuildenvironmentsaresupportedbeyondfroyo/2.2.
- ************************************************************
因为Android2.3默认是64位的系统上编译,需要手动修改build/core/main.mk,把这个判断部分注释掉:
- #ifneq(64,$(findstring64,$(build_arch)))
- #$(warning************************************************************)
- #$(warningYouareattemptingtobuildona32-bitsystem.)
- #$(warningOnly64-bitbuildenvironmentsaresupportedbeyondfroyo/2.2.)
- #$(warning************************************************************)
- #$(errorstop)
- #endif
重新make,如果是安装了JDK6版本,会又报错:
- Docsdroiddoc:out/target/common/docs/api-stubs
- Couldnotload‘clearsilver-jni’
- java.library.path=out/host/linux-x86/lib
- make:***[out/target/common/docs/api-stubs-timestamp]Error45
- make:***Waitingforunfinishedjobs….
- Couldnotload‘clearsilver-jni’
- java.library.path=out/host/linux-x86/lib
- make:***[out/target/common/docs/doc-comment-check-timestamp]Error45
这是由于clearsilver在编译时如果检测到使用JavaJDK6,就使用64位编译,因为Google的一个员工更新了几个文件。这里可以看到详细的修改记录:http://android.git.kernel.org/?p=platform/external/clearsilver.git;a=commitdiff;h=d36910a8110d8377b22301274d2b5131a732a72b
修改这几个文件,该回到32位编译环境即可:
- external/clearsilver/cgi/Android.mk
- external/clearsilver/java-jni/Android.mk
- external/clearsilver/util/Android.mk
- external/clearsilver/cs/Android.mk
把编译选项-m64改成-m32即可
重新make,大概不到一个小时就make完了。
总结:
希望本文介绍的在32位Ubuntu10.04上编译Android2.3的方法能够对读者有所帮助,更多有关linux系统的知识好还有待于读者去探索和学习。
【编辑推荐】