Android on Ubuntu 9.10

原本一開始用的是 Ubuntu 9.04(jaunty),後來沒多久 Ubuntu 9.10 就出了,於是趁機也升級到 Ubuntu 9.10(karmic)。

升級之後難免會遇到一些問題,或說是和原本不一樣的架構或設定需要調整。稍微把這次遇到有關的部份紀錄一下,主要會圍繞在 Android Framework 上。

GCC

Android 1.6 Donut 需要使用 gcc 4.4 之前的版本(不包含 4.4),因為 4.4 對語法的要求比較嚴謹,而 Donut 是在 gcc 4.4 發表以前 Release 的,所以難免會有不相容的情況,原本 Ubuntu 9.04 內建的是 gcc 4.3.4,而 Ubuntu 9.10 則是 gcc 4.4.1,所以可以使用 update-alternatives 指令來切換 gcc/g++,或者考慮使用 jserv 提供的 patch (patch 的部份我沒有測試過,不確定是不是能解決這個問題)

Java 5

由於 Java 5 已經宣佈不再支援,從 Ubuntu 9.10 開始就不再提供 Java 5 的相關套件,所以使用 apt 也只能找到 Java6 的相關套件,於是使用者需要從 9.04 的套件中去安裝。

解法: 編輯 /etc/apt/sources.list
把 deb 和 deb-src 使用 karmic 的部份,複製一份,並改成 jaunty,以我的為例

deb http://ftp.twaren.net/ubuntu karmic main universe restricted multiverse
deb-src http://ftp.twaren.net/ubuntu karmic main universe restricted multiverse
deb http://ftp.twaren.net/ubuntu jaunty main universe restricted multiverse
deb-src http://ftp.twaren.net/ubuntu jaunty main universe restricted multiverse

然後更新清單之後,就可以安裝 sun-java5-jdk 了

# sudo apt-get update
# sudo apt-get install sun-java5-jdk

參考資料: androidbmi

glibc

從 9.04 升級到 9.10 中間,也剛好遇到其中的 glibc 升級,增加了一個新的函式叫做 getline()(但我不確定是那一版加的),如果原本的程式自己寫了一個 getline() 的話,就會有問題,而且剛好這個名字還蠻容易被使用的,所以似乎蠻多人遇到這個問題。

GRUB 2

9.10 另一個重大更新是升級到 Grub2 ,似乎蠻多人在這裡受害的,但我似乎沒選到Grub2,所以還沒遇到,暫且沒事,等有空再來更新好了。

One Response to “Android on Ubuntu 9.10”

  1. jserv Says:

    也可以嘗試:
    make HOST_CC=gcc-4.3 HOST_CXX=g++-4.3

Leave a Reply