`
wyk525
  • 浏览: 50099 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Ubuntu 10.04上编译Android 2.3

阅读更多
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.doc

    ### 在32位Ubuntu 10.04上编译Android 2.3的知识点 #### 一、环境准备 1. **安装JDK6**: - 对于Android 2.3系统的编译,应选择安装JDK6而不是JDK5。 - 在32位Ubuntu 10.04环境下,直接安装JDK6可能会导致编译时...

    Ubuntu_10.04上编译Android_2.3

    Ubuntu_10.04上编译Android_2.3Ubuntu_10.04上编译Android_2.3

    Ubuntu-32位机安装编译Android2.3源码及内核

    在本文中,我们将深入探讨如何在Ubuntu 32位系统上安装、编译Android 2.3源码以及内核,并解决编译过程中可能遇到的问题。Android 2.3,也被称为Gingerbread,是Android操作系统的一个重要版本,对开发者来说具有...

    Ubuntu平台下Android2.3源码下载编译全过程

    在Ubuntu平台上编译Android 2.3源码是一项复杂的过程,需要遵循一系列步骤。首先,确保你的系统满足必要的要求,即运行Ubuntu 10.04或更新版本,并且是64位系统。同时,安装Java Development Kit (JDK) 1.6或更高...

    Ubuntu-32位机安装编译Android2.3源码及内核.doc

    在本文档中,我们将深入探讨如何在Ubuntu 10.04 32位系统上安装和编译Android 2.3(代号Gingerbread)的源代码和内核。这一过程涉及到多个步骤,包括Java开发环境的配置、必要的软件包安装、Android源码的获取与编译...

    android 源码的下载和编译(ubuntu)

    为了能够在 Ubuntu 10.04 系统上成功编译 Android 2.3 的源码,需要按照以下步骤进行: 1. **安装 JDK 6:** - 对于 Android 2.3 版本,推荐安装 JDK 6。 - 安装过程可能因系统版本不同而略有差异,可以通过以下...

    ubuntu android 环境搭建

    - 在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/...

    android源码编译

    在Ubuntu环境下编译Android源码是一项复杂而关键的任务,它涉及到多个步骤和必要的软件包安装。首先,确保你使用的是Ubuntu 10.04版本,并以root用户身份登录。解锁root用户的方法是运行`sudo passwd root`,然后...

    (505记)3_编译MTK包(包含模块编译.pdf

    2. 使用`./makeMtk generic new`命令开始编译Android系统。 如果你还需要编译模拟器(Emulator),则需执行`./makeMtk banyan_addon n dr emulator`命令。 编译SDK的过程相对耗时,输入`./mk banyan_addon`命令...

    Android-x86源码的编译

    - 选择一个稳定的Linux发行版,如Ubuntu LTS(长期支持版,如10.04)。确保系统中已经安装了以下必要的工具: - Python 2.5到2.7版本,可以从python.org获取。 - GNU Make 3.81到3.82,可在gnu.org下载。 - JDK ...

    6515编译环境搭建指南

    具体步骤可参照文档《Android2.3 Build Environment on Ubuntu 10.04 64-bit Installation SOP.pdf》。需要注意的是,从3.3版本开始,大部分工具无需单独下载,它们通常被包含在MTK提供的工具包中。此外,还需通过...

    高通android平台开发.pdf

    接下来是编译环境的构建,这里以Ubuntu 10.04 64位为例。为了构建环境,你需要更新Ubuntu的软件源并安装一系列必要的开发工具,如git、java、编译器等。特别注意,对于Android 2.3.x及更高版本,需要在64位环境下...

    中星微_VC0882_软件培训

    文中指出,对于 Android 2.3,支持的 JDK 版本为 JDK6。开发者需要在 Ubuntu 系统中配置相应的更新源,并执行更新和安装命令来安装 JDK。 在搭建好基础的开发环境后,就可以进行代码的编译工作。VC0882 的 Android ...

    MT72 build文档

    - **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位上的...

    Android DevCamp幻灯片分享:和Android源代码一起工作 | 海豚浏览器 胡继堂

    - 操作系统建议使用Ubuntu 10.04至12.04或者MacOS 10.5及以上版本。 - 需要安装必要的系统工具,如Git等。 - 准备足够的硬盘空间,2.3版本源代码需要10GB,4.0版本则需要20GB。 - **同步代码**: - 使用`repo`...

    MTK-Android软件培训

    **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...

Global site tag (gtag.js) - Google Analytics