Notice: get_currentuserinfo の使用はバージョン 4.5.0 から非推奨になっています ! 代わりに wp_get_current_user() を使ってください。 in /var/www/html/blog/wp-includes/functions.php on line 3831 Call Stack: 0.0001 228200 1. {main}() /var/www/html/blog/index.php:0 0.0001 228640 2. require('/var/www/html/blog/wp-blog-header.php') /var/www/html/blog/index.php:17 0.1139 5936864 3. require_once('/var/www/html/blog/wp-includes/template-loader.php') /var/www/html/blog/wp-blog-header.php:19 0.1150 5944936 4. include('/var/www/html/blog/wp-content/themes/zbench/single.php') /var/www/html/blog/wp-includes/template-loader.php:74 0.1150 5944968 5. get_header() /var/www/html/blog/wp-content/themes/zbench/single.php:1 0.1150 5945552 6. locate_template() /var/www/html/blog/wp-includes/general-template.php:45 0.1150 5945792 7. load_template() /var/www/html/blog/wp-includes/template.php:647 0.1150 5959656 8. require_once('/var/www/html/blog/wp-content/themes/zbench/header.php') /var/www/html/blog/wp-includes/template.php:688 0.1164 5975864 9. wp_head() /var/www/html/blog/wp-content/themes/zbench/header.php:8 0.1164 5975912 10. do_action() /var/www/html/blog/wp-includes/general-template.php:2589 0.1164 5976584 11. WP_Hook->do_action() /var/www/html/blog/wp-includes/plugin.php:453 0.1164 5976680 12. WP_Hook->apply_filters() /var/www/html/blog/wp-includes/class-wp-hook.php:323 0.1300 6194624 13. call_user_func_array:{/var/www/html/blog/wp-includes/class-wp-hook.php:298}() /var/www/html/blog/wp-includes/class-wp-hook.php:298 0.1300 6195232 14. add_google_analytics() /var/www/html/blog/wp-includes/class-wp-hook.php:298 0.1303 6196016 15. ga_current_user_is() /var/www/html/blog/wp-content/plugins/google-analyticator/google-analyticator.php:1116 0.1303 6196048 16. get_currentuserinfo() /var/www/html/blog/wp-content/plugins/google-analyticator/google-analyticator.php:1289 0.1303 6196272 17. _deprecated_function() /var/www/html/blog/wp-includes/pluggable-deprecated.php:49 0.1303 6196760 18. trigger_error() /var/www/html/blog/wp-includes/functions.php:3831

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.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.jpg
 メッセージが表示され、状況が変わったような気がする。再びデバッグ起動を試みる。が、違うエラー。
eclipse_AVDerror.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.jpg
 起動した!
(最初、スクリーンロックが掛かっているので、MENUボタンで解除する)
 ではいよいよ、HelloAndroid!だ。
 起動したエミュレータを閉じ、Eclipseから、さっき失敗したAndroid Applicationをdebugする。
android_HelloAndroid.jpg
 スクリーンロックを解除したらHelloAndroidアプリケーションが起動した(していた?)。
 おお、「Hello World, HelloAndroid!」と唱えている。
 ここまで来るのにもう少してこずると思っていたが、案外スムーズにうまくいった。
 とりあえず、ここで一区切り。
オライリージャパン (2010/09/04)
Related Posts

Comments are closed.