Android 2.2源碼編譯需注意幾個問題
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就報了空指針異常了,如果你重新裝完了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的源碼編譯內容的學習能對你有所幫助!