Ubuntu12.04 64bit版本下載Android源碼完整教程

來源:互聯網
上載者:User

標籤: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、現在就開始下載原始碼了。慢慢等待吧~

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.