1.安装JDK6
对于Android2.3系统,不要安装JDK5,应该安装最新的JDK6。
如果安装了JDK6,Android会自动按64位编译,如果系统是32位的,会有编译错误,后面会说如何修改这个错误。

sudo apt-get install sun-java6-jdk
sudo update-java-alternatives -s java-6-sun

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

2. 安装各种包
$ sudo aptitude install git-core gnupg flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev

3. 安装Repo
$ mkdir ~/bin
$ export PATH=~/bin:$PATH
$ curl http://android.git.kernel.org/repo > ~/bin/repo
$ chmod a+x ~/bin/repo

4. 下载Android源码
$mkdir ~/android2.3
$cd ~/android2.3
$ repo init -u git://android.git.kernel.org/platform/manifest.git
$ repo sync
这一步持续时间很长,整个源码+SDK共5G左右,我是下载了一个晚上才搞定,网速不给力啊。。。

5. 编译Android2.3
先export ANDROID_JAVA_HOME=$JAVA_HOME

$ cd ~/ android2.3
$ source build/envsetup.sh
$ make

在make的时候会提示出错:

************************************************************

You are attempting to build on a 32-bit system.

Only 64-bit build environments are supported beyond froyo/2.2.

************************************************************

因为Android2.3默认是64位的系统上编译,需要手动修改build/core/main.mk,把这个判断部分注释掉:
#ifneq (64,$(findstring 64,$(build_arch)))
#$(warning ************************************************************)
#$(warning You are attempting to build on a 32-bit system.)
#$(warning Only 64-bit build environments are supported beyond froyo/2.2.)
#$(warning ************************************************************)
#$(error stop)
#endif

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

Docs droiddoc: out/target/common/docs/api-stubs

Could not load ‘clearsilver-jni’

java.library.path = out/host/linux-x86/lib

make: *** [out/target/common/docs/api-stubs-timestamp] Error 45

make: *** Waiting for unfinished jobs….

Could not load ‘clearsilver-jni’

java.library.path = out/host/linux-x86/lib

make: *** [out/target/common/docs/doc-comment-check-timestamp] Error 45

这是由于clearsilver在编译时如果检测到使用Java JDK 6,就使用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完了。

  • 更多相关文章

    1. android初入门工具及配置
    2. Android(安卓)2.3.3 SDK 源代码关联Eclipse
    3. Android开机画面修改
    4. apk 反编译源码 资源文件
    5. 编译Android(安卓)VNC Server
    6. Android(安卓)反编译Apk得到Java源代码
    7. Android(安卓)Studio解决unspecified on project app resolves t
    8. fedroa16 编译android 4.0.1
    9. Android: couldn't save which view has focus because the focu

    随机推荐

    1. MySQL删除有外键约束的表数据方法介绍
    2. mysql 5.7.19 二进制最新安装
    3. mysql5.7.19 zip 详细安装过程和配置
    4. mysql zip archive 版本(5.7.19)安装教程
    5. mysql5.7.19 解压版安装教程详解(附送纯净
    6. MySQL 声明变量及存储过程分析
    7. MySQL删除表数据的方法
    8. MySQL预编译功能详解
    9. 几个比较重要的MySQL变量
    10. MySQL5.7 JSON类型使用详解