概要
Ubuntu 12.04 LTS上でAndroidをビルドしようとしたところ、Sun JDK 6のインストールに手こずってしまいました。OAB-Javaを使用することで解決できたので、本記事では、その解決方法をメモします。
はじめに
Android 2.3以上のビルドには、Sun JDK 6のインストールが必要です。Android Open Source Projectの「Initializing a Build Environment」には、リモートのAPTリポジトリを追加する方法が示されています。しかし、この方法でインストールを実行すると、下記のエラーメッセージが出て失敗してしまいました。
Package sun-java6-jdk is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another sourceE: Package 'sun-java6-jdk' has no installation candidate
つまり、Android Open Source Projectに記載の方法では、Sun JDK 6をUbuntu 12.04 LTSにインストールできません。そのため、他の方法を探しました。
解決方法
下記の方法で、Sun JDK 6をインストールできることがわかりました。
- Oracleから提供されているインストーラを使用する(http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase6-419409.html#jdk-6u45-oth-JPR)。インストールは簡単ですが、アンインストール時には手作業でファイルを削除しなければなりません。
- OAB-Javaを使用してAPTリポジトリを構築し、インストールする。スクリプトの実行に多少の手間がかかりますが、APTにJDKが登録されるため、インストールされたバイナリの管理やアンインストールが容易になります。
APTにJDKを登録したかったので、今回はOAB-Javaを使用しました。以下では、OAB-Javaを使用してSun JDK 6をインストールする方法を示します。
OAB-Javaを使ってSun JDK 6をインストール
下記の手順で、Sun JDK 6をインストールします。今回使用したのは、OAB-Java 0.3.0です。
- oab-java.shのダウンロード
- oab-java.shの実行
- sun-java6-jdkパッケージのインストール
oab-java.shのダウンロード
OAB-JavaのGitHubプロジェクトページにある「Releases」から、oab-java.shをダウンロードします。例えば、OAB-Java 0.3.0をwgetでダウンロードするには、次のようにします。
wget https://github.com/flexiondotorg/oab-java6/raw/0.3.0/oab-java.sh
oab-java.shの実行
ダウンロードしたoab-java.shに実行権限を付けます。管理者権限でスクリプトを実行し、完了するのを待ちます。
chmod a+x oab-java.sh
sudo ./oab-java.sh
もしも、エラーが出て失敗した場合は、oab-java.sh.logを確認してください。「Unmet build dependencies」や「command not found」というメッセージが出ている場合は、そのメッセージに示されているパッケージをインストールします。
sun-java6-jdkパッケージのインストール
以上で、apt-getコマンドからSun JDK 6をインストールする準備が整いました。下記のコマンドで、Sun JDK 6をインストールできます。
sudo apt-get install sun-java6-jdk
すでに他のJDKやJREがインストールされている場合は、下記のコマンドを実行し、Sun JDK 6を使用するように設定します。
sudo update-alternatives --config javac
sudo update-alternatives --config java