Android 2.3 (Gingerbread) 的 build system 引入重大的變革,就是要求必須在 64-bit 的環(huán)境下才能編譯。這對(duì)開發(fā)者來說多少造成點(diǎn)困擾,因?yàn)楸仨毾葘㈤_發(fā)環(huán)境升級(jí)到 64-bit 才行。
以下是我個(gè)人在 Fedora 14 上編譯 Gingerbread 的方法。首先,當(dāng)然必須先安裝 Fedora 14 x86_64 的版本。接著安裝以下開發(fā)工具:
bison
flex
gcc-c++
git
glibc-devel
gperf
java-1.6.0-openjdk-devel
libX11-devel
libstdc++-devel
zlib-devel
這還不夠,還得安裝一些 32-bit (i686) 版本的 rpm:
glibc-devel.i686
ncurses-devel.i686
zlib-devel.i686
這是由於 AOSP 的 toolchain 等工具還未更新為 64-bit,因此還得搭配 32-bit 版本的 development libraries。
這樣雖然能編譯成功,但要跑 emulator 時(shí)會(huì)出現(xiàn):
SDL init failure, reason is: No available video device |
研究許久,才發(fā)現(xiàn)要安裝 libXrandr.i686 才行。