sUbuntu 10.04系统 32位机上安装编译Android2.3源码,其步骤和注意事项如下:
1.安装JDK6
对于Android2.3系统,不要安装JDK5,应该安装最新的JDK6。
如果安装了JDK6,Android会自动按64位编译,如果系统是32位的,会有编译错误,后面会说如何修改这个错误。
sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
sudo add-apt-repository "deb-src http://archive.canonical.com/Ubuntu lucid partner"
sudo apt-get update
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
$ lunch
$ 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完了。
错误:
/usr/include/gnu/stubs.h:7:27: error: gnu/stubs-32.h: No such file or directory
make: *** [out/host/linux-x86/obj/EXECUTABLES/acp_intermediates/acp.o] 错误 1
解决:
sudo apt-get install libc6-dev-i386
错误:
make: *** [out/host/linux-x86/obj/EXECUTABLES/acp_intermediates/acp] error 1
解决:
sudo apt-get install g++-multilib
错误:
external/clearsilver/cgi/cgi.c:22: fatal error: zlib.h: No such file or directory
compilation terminated.
make: *** [out/host/linux-x86/obj/SHARED_LIBRARIES/libneo_cgi_intermediates/cgi.o] Error 1
解决:
sudo apt-get install zlib1g-dev
错误:
/usr/bin/ld: cannot find -lz
collect2: ld returned 1 exit status
make: *** [out/host/linux-x86/obj/EXECUTABLES/aapt_intermediates/aapt] Error 1
解决:
sudo apt-get install lib32z1-dev
错误:
bison -d -o out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl_language_y.cpp frameworks/base/tools/aidl/aidl_language_y.y
/bin/bash: bison: command not found
make: *** [out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl_language_y.cpp] Error 127
解决:
sudo apt-get install bison
错误:
Lex: aidl <= frameworks/base/tools/aidl/aidl_language_l.l
/bin/bash: flex: command not found
make: *** [out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl_language_l.cpp] Error 127
解决:
sudo apt-get install flex
错误:
/usr/bin/ld: cannot find -lncurses
collect2: ld returned 1 exit status
make: *** [out/host/linux-x86/obj/EXECUTABLES/adb_intermediates/adb] Error 1
解决:
sudo apt-get install lib32ncurses5-dev
错误:
prebuilt/linux-x86/sdl/include/SDL/SDL_syswm.h:55: fatal error: X11/Xlib.h: No such file or directory
compilation terminated.
make: *** [out/host/linux-x86/obj/EXECUTABLES/emulator_intermediates/android/main-common.o] Error 1
解决:
sudo apt-get install libx11-dev
错误:
sh: gperf: not found
calling gperf failed: 32512 at ./makeprop.pl line 96.
make: *** [out/target/product/generic/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/css/CSSPropertyNames.h] Error 25
make: *** Deleting file `out/target/product/generic/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/css/CSSPropertyNames.h'
解决:
sudo apt-get install gperf
host Executable: adb (out/host/linux-x86/obj/EXECUTABLES/adb_intermediates/adb)
/usr/bin/ld: cannot find -lncurses
collect2: ld returned 1 exit status
make: *** [out/host/linux-x86/obj/EXECUTABLES/adb_intermediates/adb] 错误 1
解决方法:
sudo apt-get install libncurses5-dev
host C: emulator <= external/qemu/android/main.c
In file included from external/qemu/android/main.c:30:
prebuilt/linux-x86/sdl/include/SDL/SDL_syswm.h:55:22: error: X11/Xlib.h: 没有那个文件或目录
prebuilt/linux-x86/sdl/include/SDL/SDL_syswm.h:56:23: error: X11/Xatom.h: 没有那个文件或目录
In file included from external/qemu/android/main.c:30:
prebuilt/linux-x86/sdl/include/SDL/SDL_syswm.h:73: error: expected specifier-qualifier-list before ‘XEvent’
prebuilt/linux-x86/sdl/include/SDL/SDL_syswm.h:86: error: expected specifier-qualifier-list before ‘Display’
external/qemu/android/main.c: In function ‘main’:
external/qemu/android/main.c:1281: warning: implicit declaration of function ‘audio_check_backend_name’
make: *** [out/host/linux-x86/obj/EXECUTABLES/emulator_intermediates/android/main.o] 错误 1
解决方法:
sudo apt-get install libx11-dev
分享到:
相关推荐
### 在32位Ubuntu 10.04上编译Android 2.3的知识点 #### 一、环境准备 1. **安装JDK6**: - 对于Android 2.3系统的编译,应选择安装JDK6而不是JDK5。 - 在32位Ubuntu 10.04环境下,直接安装JDK6可能会导致编译时...
Ubuntu_10.04上编译Android_2.3Ubuntu_10.04上编译Android_2.3
在本文中,我们将深入探讨如何在Ubuntu 32位系统上安装、编译Android 2.3源码以及内核,并解决编译过程中可能遇到的问题。Android 2.3,也被称为Gingerbread,是Android操作系统的一个重要版本,对开发者来说具有...
在Ubuntu平台上编译Android 2.3源码是一项复杂的过程,需要遵循一系列步骤。首先,确保你的系统满足必要的要求,即运行Ubuntu 10.04或更新版本,并且是64位系统。同时,安装Java Development Kit (JDK) 1.6或更高...
在本文档中,我们将深入探讨如何在Ubuntu 10.04 32位系统上安装和编译Android 2.3(代号Gingerbread)的源代码和内核。这一过程涉及到多个步骤,包括Java开发环境的配置、必要的软件包安装、Android源码的获取与编译...
为了能够在 Ubuntu 10.04 系统上成功编译 Android 2.3 的源码,需要按照以下步骤进行: 1. **安装 JDK 6:** - 对于 Android 2.3 版本,推荐安装 JDK 6。 - 安装过程可能因系统版本不同而略有差异,可以通过以下...
- 在32位Ubuntu系统下编译Android 2.2及更低版本时,可能会遇到使用4.4版本的GCC/G++导致的错误。此时可以将`/usr/bin/gcc`和`/usr/bin/g++`的链接指向4.3版本: ```bash sudo rm /usr/bin/gcc sudo ln -s /usr/...
在Ubuntu环境下编译Android源码是一项复杂而关键的任务,它涉及到多个步骤和必要的软件包安装。首先,确保你使用的是Ubuntu 10.04版本,并以root用户身份登录。解锁root用户的方法是运行`sudo passwd root`,然后...
2. 使用`./makeMtk generic new`命令开始编译Android系统。 如果你还需要编译模拟器(Emulator),则需执行`./makeMtk banyan_addon n dr emulator`命令。 编译SDK的过程相对耗时,输入`./mk banyan_addon`命令...
- 选择一个稳定的Linux发行版,如Ubuntu LTS(长期支持版,如10.04)。确保系统中已经安装了以下必要的工具: - Python 2.5到2.7版本,可以从python.org获取。 - GNU Make 3.81到3.82,可在gnu.org下载。 - JDK ...
具体步骤可参照文档《Android2.3 Build Environment on Ubuntu 10.04 64-bit Installation SOP.pdf》。需要注意的是,从3.3版本开始,大部分工具无需单独下载,它们通常被包含在MTK提供的工具包中。此外,还需通过...
接下来是编译环境的构建,这里以Ubuntu 10.04 64位为例。为了构建环境,你需要更新Ubuntu的软件源并安装一系列必要的开发工具,如git、java、编译器等。特别注意,对于Android 2.3.x及更高版本,需要在64位环境下...
文中指出,对于 Android 2.3,支持的 JDK 版本为 JDK6。开发者需要在 Ubuntu 系统中配置相应的更新源,并执行更新和安装命令来安装 JDK。 在搭建好基础的开发环境后,就可以进行代码的编译工作。VC0882 的 Android ...
- **GB**:Android 2.3构建环境在Ubuntu 10.04 64位上的安装指南。 - **ICS/ICS2**:ALPS构建环境在Ubuntu 10.04 64位上的安装指南(适用于Android 4.0)。 - **JB/JB2**:ALPS构建环境在Ubuntu 10.04 64位上的...
- 操作系统建议使用Ubuntu 10.04至12.04或者MacOS 10.5及以上版本。 - 需要安装必要的系统工具,如Git等。 - 准备足够的硬盘空间,2.3版本源代码需要10GB,4.0版本则需要20GB。 - **同步代码**: - 使用`repo`...
**1.2 Android 2.3系统编译环境搭建** - **编译器**: Arm-eabi-4.4.3、GCC 4.4.3 和 JDK 1.6。 - **其他工具**: Wine 1.1、Bison 2.4.x、Flex 2.5.x、Gperf 3.0.x、Mingw32 以及 Unix2dos/tofrodos。 **1.3 MMI...