Ubuntu12.04系统编译Android4.4源码

系统环境

系统:Ubuntu12.04 64位系统。html

源码:Android4.4源码。java

选择Ubuntu12.04,是由于在14.04上没能折腾成功,在上面兼容32位程序的配置有点烦。12.04必需要用64位的,编译Android4.4时须要64位环境,同时要兼容32位程序,折腾。python

步骤

  1. 配置jdk6

Android官方给的步骤是用OpenJdk,实测是不行的。网上找到https://jdk6.java.net/download.html 这个网址有须要的jdk,下载自解压安装包。自解压后在当前目录下生成一个jdk的目录,打开/etc/environment,增长本身的jdk bin目录到PATH里面。同时新增以下环境变量:linux

CLASSPATH=/path/to/your/local/jdk/dir/lib
JAVA_HOME=/path/to/your/local/jdk/dir

而后执行以下命令,设置系统的默认jdk:android

$ sudo update-alternatives --install /usr/bin/java java /usr/local/java/jdk1.6.0_38/bin/java 300
$ sudo update-alternatives --install /usr/bin/javac javac /usr/local/java/jdk1.6.0_38/bin/javac 300
$ sudo update-alternatives --install /usr/bin/javaws javaws /usr/local/java/jdk1.6.0_38/bin/javaws 300
$ sudo update-alternatives --install /usr/bin/jar jar /usr/local/java/jdk1.6.0_38/bin/jar 300
$ sudo update-alternatives --install /usr/bin/javap javap /usr/local/java/jdk1.6.0_38/bin/javap 300
$ sudo update-alternatives --config java
  1. 安装软件包 能装的都要装上,以避免编译失败,又要回过头重装,以下:git

    $ sudo apt-get install build-essential make gcc g++ libc6-dev texinfo libncurses-dev git-core gnupg flex bison zip curl ncurses-dev libsdl-dev zlib1g-dev ia32-libs libxml2-utils lzmaubuntu

  2. 编译源码 到源码目录下,以下:python2.7

    $ source build/envsetup.sh $ lunch 选择arm平台。curl

    $ make -jn n为CPU个数的两倍,主要是提升编译速度。flex

可能的错误

编译过程碰到以下错误:

File "/usr/lib/python2.7/subprocess.py", line 679, in __init__
     errread, errwrite)
 File "/usr/lib/python2.7/subprocess.py", line 1259, in _execute_child
     raise child_exception
 OSError: [Errno 2] No such file or directory

通常状况是由于前面的javap没有配置所致。若是必须的软件包没有安装,也会有相似的提示,仔细向上翻看错误提示,找到真正的错误地方,安装对应的软件包便可。

参考

  1. Linux(ubuntu14.04)上编译Android4.4源码的环境搭建及编译全过程
  2. Android 4.4代码资源115网盘下载