標籤:android   style   class   c   code   tar   
    首先去官網http://source.android.com/source/initializing.html可以看到完整的安裝教程。不過一般情況下,按照這個教程是無法一步到位的,因為中途肯定會遇到很多問題。這裡我把我遇到的問題以及相應的解決方案總結一下:
   1、sudo apt-get install git gnupg flex bison gperf build-essential \ zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \libgl1-mesa-dev g++-multilib mingw32 tofrodos \ python-markdown libxml2-utils xsltproc zlib1g-dev:i386
   遇到錯誤如下:
 
  
   
   |   The following packages have unmet dependencies:  g++-multilib : Depends: gcc-multilib (>= 4:4.6.3-1ubuntu5) but it is not going to be installed  Depends: g++-4.6-multilib (>= 4.6.3-1~) but it is not going to be installed  libgl1-mesa-dev : Depends: mesa-common-dev (= 8.0.2-0ubuntu3) but it is not going to be installed  libgl1-mesa-glx : Depends: libglapi-mesa (= 8.0.2-0ubuntu3)  Recommends: libgl1-mesa-dri (>= 7.2)  libx11-dev : Depends: libxcb1-dev but it is not going to be installed E: Unable to correct problems, you have held broken packages.  | 
  
 
    這是因為當前系統的gcc版本過高引起的,我們需要將gcc版本降低到4.4,解決方案如下:
 
  
   
   ①安裝低版本的gcc和g++  使用gcc4.4 版本進行編譯.首先安裝低版本的gcc和g++  sudo apt-get install gcc-4.4  sudo apt-get install g++-4.4    ②裝完後進入到/usr/bin目錄下,更改gcc,g++連結  $ cd /usr/bin  $ ls -l gcc* lrwxrwxrwx 1 root root      7 Jan 10 18:19 gcc -> gcc-4.6 -rwxr-xr-x 1 root root 259232 Apr 16  2012 gcc-4.4 -rwxr-xr-x 1 root root 353216 Apr 16  2012 gcc-4.6
   發現gcc 連結到gcc-4.6,  需要將它改為連結到gcc-4.4 :  $ sudo mv gcc gcc.bak                    ----先備份gcc-4.6  $ sudo ln -s gcc-4.4 gcc
   同理,仍然在/usr/bin目錄下  $ ls -l g++* lrwxrwxrwx 1 root root      7 Mar 14  2012 g++ -> g++-4.6 -rwxr-xr-x 1 root root 263328 Apr 16  2012 g++-4.4 -rwxr-xr-x 1 root root 357312 Apr 16  2012 g++-4.6    需要將g++連結改為g++-4.4: $ sudo mv g++ g++.bak                   ----先備份g++-4.6 $ sudo ln -s g++-4.4 g++    再查看gcc和g++版本號碼: $ gcc -v $ g++ -v
   均顯示gcc version 4.4,說明gcc 4.4安裝成功。
  ③、gcc降到4.4後錯誤 a. 提示bits/predefs.h:沒有那個檔案或目錄錯誤的 $ sudo apt-get install gcc-multilib 即可
  b. g++: selected multilib ‘32‘ not installed錯誤 No private recovery resources for TARGET_DEVICE crespo host Executable: acp (out/host/linux-x86/obj/EXECUTABLES/acp_intermediates/acp) host Executable: aapt (out/host/linux-x86/obj/EXECUTABLES/aapt_intermediates/aapt) g++: selected multilib ‘32‘ not installed make: *** [out/host/linux-x86/obj/EXECUTABLES/acp_intermediates/acp] Error 1 make: *** Waiting for unfinished jobs.... host SharedLib: libESR_Shared (out/host/linux-x86/obj/lib/libESR_Shared.so) g++: selected multilib ‘32‘ not installed make: *** [out/host/linux-x86/obj/lib/libESR_Shared.so] Error 1 g++: selected multilib ‘32‘ not installed make: *** [out/host/linux-x86/obj/EXECUTABLES/aapt_intermediates/aapt] Error 1
  解決: $ sudo apt-get install g++-4.4-multilib | 
  
 
 
    2、sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1/usr/lib/i386-linux-gnu/libGL.so
    3、然後就是按照http://source.android.com/source/downloading.html裡面的步驟一次執行。不過在使用命令
    repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1 和 repo sync
    的時候,可能會報錯。出錯了就需要將源碼目錄下的.repo整個檔案夾刪除,然後重新初始化和同步!注意:最好在命令前加上sudo 免得出現許可權問題!!!
   4、現在就開始下載原始碼了。慢慢等待吧~