在Ubuntu10.04上如何编译Android2.3?

运维 系统运维
Ubuntu10.04启动速度快,桌面环境相较于之前的版本来说更加绚丽。而且ubuntu是免费的,想使用ubuntu的用户,可以从官方网站─下载到最新的ubuntu的ISO镜像,也可以在官方网站申请让总部亲自发给你一张光盘,感受一下ubuntu系统的强大的功能。笔者在Ubuntu10.04系统32位机上安装编译Android2.3源码,其步骤和注意事项如下:

Ubuntu10.04启动速度快,桌面环境相较于之前的版本来说更加绚丽。而且ubuntu是免费的,想使用ubuntu的用户,可以从官方网站─下载到最新的ubuntu的ISO镜像,也可以在官方网站申请让总部亲自发给你一张光盘,感受一下ubuntu系统的强大的功能。笔者在Ubuntu10.04系统32位机上安装编译Android2.3源码,其步骤和注意事项如下:

1.安装JDK6

对于Android2.3系统,不要安装JDK5,应该安装最新的JDK6。

如果安装了JDK6,Android会自动按64位编译,如果系统是32位的,会有编译错误,后面会说如何修改这个错误。

 

  1. sudoadd-apt-repository"debhttp://archive.canonical.com/lucidpartner"  
  2.  
  3. sudoadd-apt-repository"deb-srchttp://archive.canonical.com/Ubuntulucidpartner"  
  4.  
  5. sudoapt-getupdate  
  6.  
  7. sudoapt-getinstallsun-java6-jdk  
  8.  
  9. sudoupdate-java-alternatives-sjava-6-sun 

 

安装完后,需要手动设置JAVA_HOME,JRE_HOME,CLASS_PATH为JDK6的安装路径。

2.安装各种包

 

  1. $sudoaptitudeinstallgit-coregnupgflexbisongperflibsdl-devlibesd0-devlibwxgtk2.6-devbuild-essentialzipcurllibncurses5-devzlib1g-dev 

 

3.安装Repo

 

  1. $mkdir~/bin  
  2.  
  3. $exportPATH=~/bin:$PATH  
  4.  
  5. $curlhttp://Android.git.kernel.org/repo>~/bin/repo  
  6.  
  7. $chmoda+x~/bin/repo 

 

4.下载Android源码

 

  1. $mkdir~/Android2.3  
  2.  
  3. $cd~/Android2.3  
  4.  
  5. $repoinit-ugit://Android.git.kernel.org/platform/manifest.git  
  6.  
  7. $reposync 

 

这一步持续时间很长,整个源码+SDK共5G左右,我是下载了一个晚上才搞定,网速不给力啊。。。

5.编译Android2.3

先exportAndroid_JAVA_HOME=$JAVA_HOME

 

  1. $cd~/Android2.3  
  2.  
  3. $sourcebuild/envsetup.sh  
  4.  
  5. $lunch  
  6.  
  7. $make 

 

在make的时候会提示出错:

 

  1. ************************************************************  
  2.  
  3. Youareattemptingtobuildona32-bitsystem.  
  4.  
  5. Only64-bitbuildenvironmentsaresupportedbeyondfroyo/2.2.  
  6.  
  7. ************************************************************ 

 

因为Android2.3默认是64位的系统上编译,需要手动修改build/core/main.mk,把这个判断部分注释掉:

 

  1. #ifneq(64,$(findstring64,$(build_arch)))  
  2.  
  3. #$(warning************************************************************)  
  4.  
  5. #$(warningYouareattemptingtobuildona32-bitsystem.)  
  6.  
  7. #$(warningOnly64-bitbuildenvironmentsaresupportedbeyondfroyo/2.2.)  
  8.  
  9. #$(warning************************************************************)  
  10.  
  11. #$(errorstop)  
  12.  
  13. #endif 

 

重新make,如果是安装了JDK6版本,会又报错:

 

  1. Docsdroiddoc:out/target/common/docs/api-stubs  
  2.  
  3. Couldnotload‘clearsilver-jni’  
  4.  
  5. java.library.path=out/host/linux-x86/lib  
  6.  
  7. make:***[out/target/common/docs/api-stubs-timestamp]Error45  
  8.  
  9. make:***Waitingforunfinishedjobs….  
  10.  
  11. Couldnotload‘clearsilver-jni’  
  12.  
  13. java.library.path=out/host/linux-x86/lib  
  14.  
  15. 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位编译环境即可:

 

  1. external/clearsilver/cgi/Android.mk  
  2.  
  3. external/clearsilver/java-jni/Android.mk  
  4.  
  5. external/clearsilver/util/Android.mk  
  6.  
  7. external/clearsilver/cs/Android.mk 

 

把编译选项-m64改成-m32即可

重新make,大概不到一个小时就make完了。

总结:

希望本文介绍的在32位Ubuntu10.04上编译Android2.3的方法能够对读者有所帮助,更多有关linux系统的知识好还有待于读者去探索和学习。

【编辑推荐】

  1. Ubuntu10.04下如何移植QtE?
  2. 如何在Ubuntu下访问局域网服务器?
  3. 如何在Ubuntu下安装媒体中心XBMC?
  4. Ubuntu10.04上如何搭建iPhone开发环境?
  5. UbuntuLinux下USB转串口的应用及minicom的设置方法
责任编辑:韩亚珊 来源: 雨木林风
相关推荐

2011-08-29 11:32:44

UbuntuiPhone

2010-07-13 09:46:09

TomcatUbuntu 10.0

2011-08-29 13:29:29

UbuntuQtE

2011-09-07 16:43:10

ubuntuwindowsXP

2011-03-21 16:37:57

2011-09-07 10:58:19

UbuntuMySQL

2011-08-30 10:37:27

UbuntuJAVA

2011-03-14 10:30:15

Ubuntu10.04LAMP

2011-08-30 10:52:47

UbuntuOracle11g

2011-08-29 15:23:11

Ubuntuapache

2011-09-07 14:31:59

ubuntu屏幕亮度

2010-05-25 09:04:55

2011-08-22 18:03:32

Ubuntupdnsd

2011-08-30 16:17:47

UbuntuAndroid

2010-03-16 10:52:20

Ubuntu10.04

2011-08-30 14:58:26

Ubuntu

2011-08-30 11:14:15

Ubuntu

2011-08-30 11:21:59

UbuntuGoogle

2011-10-21 14:57:32

QQ手机管家Android节电

2011-12-01 10:25:29

AndroidAndroid4.0冰淇淋三明治
点赞
收藏

51CTO技术栈公众号