Android 2.2源碼編譯需注意幾個問題是本文要介紹的內容,主要是來裡瞭解並學習Android 2.2的源碼編譯的內容,具體關於Android 2.2的內容來看本文詳解。
Android 2.2的編譯,從源碼直接make就ok。需要jdk6!這個編譯所需時間因機器配置不同而不同。我這次全部編譯大概用了兩個小時。編譯產生的檔案在你源碼目錄/out/下面
編譯完了後編譯sdk,
- cd ~/android/src
- . build/envsetup.sh
- lunch sdk-eng
- make sdk
這裡需要注意的是:Android 2.2編譯sdk當中有個編譯doc的部分需要用jdk5!網上有介紹很多辦法,我採用了直接注釋(即略過doc的編譯的辦法)。這樣就免去了將開發環境中的jdk的版本換來換去的。具體做法是:注釋檔案 build\core\droiddoc.mk 中的ALL_DOCS += $(full_target)這一行即可這一行前面加#即可)。
關於這一點,可以這樣,在編譯源碼時用jdk5.0,編譯sdk時用jdk6.0,但是仍然要注釋檔案 build\core\droiddoc.mk 中的ALL_DOCS += $(full_target)這一行。關於用兩個版本的jdk我是這樣的做的:去sun官網將jdk1.5和1.6的安裝包都下載回來,都安裝,在/etc/profile中指定JDK_HOME JRE_HOME等環境變數,要切換版本時,就在這邊的環境變數中寫上對應版本的路進即可,然後source profile,然後java -version查看版本,有時可能要重啟才會生效)
Android 2.2的sdk編譯OK後,在1的ou/host/linux-x86目錄下面會有sdk目錄產生。裡面所產生的內容和網上下載到的sdk基本類似,單擊放大)
安裝Eclipse的ADT外掛程式。針對android 2.2的sdk至少需要0.96的ADT。你現在編譯的是Android 2.2的sdk,千萬不要用現在官方已經升級的8.0的adt,那樣會出現在在eclipse中認不到模擬器。2010/12/10更新)而且在安裝ADT外掛程式時,jdk需要jdk...6_21我同事那個是6_15就報了null 指標異常了,如果你重新裝完了jdk,注意更新java_home等環境變數)。
此時,建立的Android 2.2的工程,編譯會出錯。Unableto get buffer of resource assetfile。就是類似前面的這樣的錯誤。。。解決辦法網上也有很多。我採用了比較直接的:通過覆蓋android.jar包中的resource.arsc。這個resource.arsc檔案可到win下面的sdk的android.jar中複製一個過來,然後直接粘貼到編譯出來的android.jar中。
解決辦法是將build sdk時候的product該為sdk,有兩種方法:
1、使用lunch更改配置:
- cd ~/android/src
- . build/envsetup.sh
- lunch sdk-eng
- make sdk
小結:Android 2.2源碼編譯需注意幾個問題的內容介紹完了,希望通過Android 2.2的源碼編譯內容的學習能對你有所協助!