Android:Hello!Android, Hello?

開発環境の支度も整ったので、いよいよ擬似端末を起動してサンプルプログラムを動作させてみる。

以下を参考。

Android Market配布を目指しEclipseでHelloWorld! (3/3) – @IT

http://www.atmarkit.co.jp/fjava/rensai4/android01/android01_3.html

Eclipseを起動し、メニュー「ファイル」→「新規」→「プロジェクト」でAndroidを選択し、「次へ」ボタンを押下する。

eclipse_newproject.jpg

参考にしたサイトと若干異なるのが気になるが、New Android Projectダイアログが表示される。次のように入力した。「完了」ボタンを押下する。

eclipse_newproject2.jpg

が、相変わらずWelcome画面のまま。プロジェクトの作成に失敗している?

eclipse.jpg

と思ったら、Welcome画面は×印のボタンによって閉じなければならないらしい。閉じたらさっき作成したHelloAndroidプロジェクトの画面が現われた。

画面下、赤い文字でエラー出力されているのが気になる。

HelloAndroid] no classfiles specified  
HelloAndroid] Conversion to Dalvik format failed with error 1

気になるが、サイトの解説どおりデバッグボタン(虫ボタン)を押下し、ダイアログを表示させ、Android Applicationを選択して「OK」ボタンを押下。

eclipse_debug.jpg

そしたらエラー。なに?

eclipse_debugerror-thumb-400x111-255.jpg

Your project contains error(s), please fix them before running your application.

「オマエのプロジェクトはエラーだから、アプリを走らせる前に直せ馬鹿」と言われているようだが理由がわからない。空のプロジェクトを走らせただけなのに。

最初にエラーが出ていたのがやはり怪しい。エラーの文言を調べた結果、対処策がわかった。

altemasoft – てくの・とりっぷ: Android SDK memo, no classfiles specified エラーが出る場合の対処

http://blog.altemasoft.com/article/29827399.html

メニュー「プロジェクト」→「クリーン」で開くダイアログで対象プロジェクト選択してプロジェクトのクリーンアップを行えという事だ。

eclipse_projectclean-thumb-400x312-257.jpg

メッセージが表示され、状況が変わったような気がする。再びデバッグ起動を試みる。が、違うエラー。

eclipse_AVDerror-thumb-400x111-259.jpg

No compatible targets were found. Do you wish to a add new Android Virtual Device?

互換性を持つターゲットが見つからないと言っている。新しい仮想デバイスの追加がどうのこうのと。よくわからない。

Failed to find an AVD compatible with target ‘Android 1.5’.

とも言われている。メッセージを検索したら新しい事がわかった。

[Android] Android Virtual Devices (AVDs)

http://www.adakoda.com/adakoda/2009/04/android-android-virtual-devices-avds.html

また、Android 1.5 SDKをインストール後、AVDを一度も作成していない状態では、Androidプロジェクト(プログラム)を実行することができないため、このAVDを作成する作業は、必須の作業となります。

なるほど。

解説のとおり、コマンドプロンプトで、Android SDKにあるtoolsディレクトリ配下で以下のコマンドを実行した。

作成可能なターゲットの表示

C:\application\android-sdk-windows-1.5_r2\tools>android list targets  
Available Android targets:  
id: 1  
     Name: Android 1.1  
     Type: Platform  
     API level: 2  
     Skins: HVGA (default), HVGA-L, HVGA-P, QVGA-L, QVGA-P  
id: 2  
     Name: Android 1.5  
     Type: Platform  
     API level: 3  
     Skins: HVGA (default), HVGA-L, HVGA-P, QVGA-L, QVGA-P  
id: 3  
     Name: Google APIs  
     Type: Add-On  
     Vendor: Google Inc.  
     Description: Android + Google APIs  
     Based on Android 1.5 (API level 3)  
     Libraries:  
      * com.google.android.maps (maps.jar)  
   &n  
bsp;      API for Google Maps  
     Skins: QVGA-P, HVGA-L, HVGA (default), QVGA-L, HVGA-P

さっきプロジェクトを作成した際、ターゲットをAndroid 1.5としているので、以下の方法でAVDを作成した。

AVD作成方法

C:\application\android-sdk-windows-1.5_r2\tools>android create avd -n my_android  
1.5 -t 2  
Android 1.5 is a basic Android platform.  
Do you wish to create a custom hardware profile [no]  
Created AVD ‘my_android1.5’ based on Android 1.5

コマンドを実行するとカスタムハードウェアの作成を問われるが[no]のままで良いらしい。

なお、作成したAVDが不要になったら次の方法で削除するようだ。

android delete avd -n my_android1.5

解説では、以下のコマンドでエミュレータが起動するというので、プロジェクトの事は置いておいて試してみた。

emulator @my_android1.5

android_emulator-thumb-400x332-261.jpg

起動した!
(最初、スクリーンロックが掛かっているので、MENUボタンで解除する)
 ではいよいよ、HelloAndroid!だ。
 起動したエミュレータを閉じ、Eclipseから、さっき失敗したAndroid Applicationをdebugする。

android_HelloAndroid.jpg

スクリーンロックを解除したらHelloAndroidアプリケーションが起動した(していた?)。
 おお、「Hello World, HelloAndroid!」と唱えている。
 ここまで来るのにもう少してこずると思っていたが、案外スムーズにうまくいった。
 とりあえず、ここで一区切り。