来るべきXperiaに備えて、Ubuntu9.10でAndroidアプリを開発できるようにしてみた。
Ubuntu9.10ではこちらの方法は上手くいかなかったので、 http://www.futuredesktop.org/developing_android_apps_on_ubuntu.html の手順でセットアップした。
EclipseとAndroid-SDK R5のセットアップ
まずはJavaとEclipseとAndroid-SDKをセットアップする。JavaとEclipseについては上記のサイトの手順の通りにすれば良い。
Android-SDKはより新しいバージョンが出ている。現時点での最新はR5で、圧縮ファイルは android-sdk_r05-linux_86.tgz。解凍するとandroid-sdk-linux_86というディレクトリができる。
ちなみに最初はeclipseとAndroidSDKのフォルダを/usr/libに置いてみたが、eclipseにAndroidSDKのパスを設定することができなかった。アクセス権の関係?そこで、手順の通りホームに置いた それぞれ /opt/eclipse/ と /opt/google/android-sdk-linux_86/ に置いた。(当然eclipseの起動スクリプトのパスも変更した)
AVDの作成
その後のセットアップも概ね上記のサイトの手順通りで出来た。
ただし、AVD(Android Virtual Device)を作るところだけは手順通りでは出来かなかった。おそらくSDKのバージョンが上がった影響だろう。手順では、android-sdk-linux_86/tools/android で avd を create しているが、同じようにやると次のようなエラーが出た。
$ ~/android-sdk-linux_86/tools$ ./android create avd --target 2 --name my_avd Error: Target id is not valid. Use 'android list targets' to get the target ids.
このエラーメッセージの指示の通りに list targets オプションで target のリストを表示させてみても以下のように何も表示されない。
$ ~/android-sdk-linux_86/tools$ ./android list targets Available Android targets:
困ってAndroid SDKの本家サイト(Android Studio と SDK ツールのダウンロード | Android Developers) に行ってみると、画面の左側に Downloadable SDK Components というリンクがある。どうもこれらの Components を入れないとAVDを作れないようだ。(ちゃんと調べてません)
Componentsを追加する方法(Adding SDK Components)を見ると、Componentのインストール等は Android SDK and AVD Manager でやれば良いらしい。
Android SDK and AVD Manager
Android SDK and AVD Manager は Eclipse の"Window"メニューの"Android SDK and AVD Manager"から起動できる。
Android SDK and AVD Manager の画面を開いたら、まずは画面左のリストで Available Packages を選択する。
画面右にGoogleのAndroidのリポジトリが表示されるので、チェックを入れる。すると、リポジトリの下に様々なバージョンのPlatformやらDocumentのリストが(すべてチェックされた状態で)表示される。リストで必要なものにチェックを入れて、Install Selected ボタンをクリックする。(自分は全部にチェックを入れたままにした。)
使用条件の確認(だったっけ)を求められるので、ラジオボタンで Accept All を選択し、Install ボタンをクリックする。
ダウンロードとインストールが終了すれば、必要なPlatformがインストールされた。
さっき何も表示されなかったコマンド($ ./android list targets)をもう一度やってみると、以下のようにズラリとtargetが表示されるようになっている。
$ ~/android-sdk-linux_86/tools$ ./android list targets Available Android targets: id: 1 or "android-3" Name: Android 1.5 Type: Platform API level: 3 Revision: 1 Skins: HVGA (default), QVGA-P, HVGA-L, QVGA-L, HVGA-P id: 2 or "Google Inc.:Google APIs:3" Name: Google APIs Type: Add-On Vendor: Google Inc. Revision: 3 Description: Android + Google APIs Based on Android 1.5 (API level 3) Libraries: * com.google.android.maps (maps.jar) API for Google Maps Skins: QVGA-P, HVGA-L, HVGA (default), QVGA-L, HVGA-P id: 3 or "android-4" Name: Android 1.6 Type: Platform API level: 4 Revision: 1 Skins: WVGA854, QVGA, HVGA (default), WVGA800 id: 4 or "Google Inc.:Google APIs:4" Name: Google APIs Type: Add-On Vendor: Google Inc. Revision: 2 Description: Android + Google APIs Based on Android 1.6 (API level 4) Libraries: * com.google.android.maps (maps.jar) API for Google Maps Skins: WVGA854, HVGA (default), WVGA800, QVGA id: 5 or "android-6" Name: Android 2.0.1 Type: Platform API level: 6 Revision: 1 Skins: WVGA854, QVGA, HVGA (default), WVGA800, WQVGA400, WQVGA432 id: 6 or "Google Inc.:Google APIs:6" Name: Google APIs Type: Add-On Vendor: Google Inc. Revision: 1 Description: Android + Google APIs Based on Android 2.0.1 (API level 6) Libraries: * com.google.android.maps (maps.jar) API for Google Maps Skins: WQVGA400, WVGA854, HVGA (default), WQVGA432, WVGA800, QVGA id: 7 or "android-7" Name: Android 2.1 Type: Platform API level: 7 Revision: 1 Skins: WVGA854, QVGA, HVGA (default), WVGA800, WQVGA400, WQVGA432 id: 8 or "Google Inc.:Google APIs:7" Name: Google APIs Type: Add-On Vendor: Google Inc. Revision: 1 Description: Android + Google APIs Based on Android 2.1 (API level 7) Libraries: * com.google.android.maps (maps.jar) API for Google Maps Skins: WQVGA400, WVGA854, HVGA (default), WQVGA432, WVGA800, QVGA