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網盤下載
相關文章
相關標籤/搜索