Troubleshooting

よくあるAndroidのエラーへの対処ヒントをまとめてあります。発生したエラーを深いレベルまで追跡する際には、ddmsのlogcat機能が役に立ちます。デバッグ関連のヒントはDebugging an Android Applicationをご覧下さい。

エミュレータ動作中にADBに"no device"と言われる

adb kill-server コマンドでadbを停止し、他のコマンドを叩いてもう一度起動して下さい。

アプリケーションリストに自作のアプリケーションやアクティビティが表示されません

アプリを更新したのにデバイス上で更新されていないようなんですが…

adb installで.apkファイルをデバイスに転送しましたか?

layout_wilih属性を定義しているのに、アプリケーションの起動時に"Binary XML file line #2: You must supply a layout_wilih attribute"というエラーが出ます

電話をかける、SMSを受信する、通知情報を取得する、AndroidアプリケーションにIntentを送信する、といったリクエストが処理されません

アクティビティの実行やIntentの受信権限が無いかあるいは権限要求をかけていないことが考えられます。『電話をかける』といった多くのAndroid標準アクティビティは未承認のアプリケーションから実行できないように権限設定が為されています。セキュリティモデルに許可情報に関する詳細が、Manifest.permissionにはAndroidが定める許可情報の一覧があります。

Eclipse上でプロジェクトがビルド出来ません

プロジェクトビルドに失敗する際に考えられるのは、res/以下に追加されたリソースがRクラス内に出てこない場合、エミュレータが起動されていない場合、アプリケーションが実行出来ない場合、古いバージョンのアプリケーションを実行[※1] しようとしている場合があります。

この場合、以下の手順を試してみてください

  1. DDMSビューを開いていない場合はまず、Eclipse上のDDMSビューに移動して下さい
    1. メニューからWindow > Open Perspective > Otherを選択します
    2. リストからDDMSを選択し、OKを押します
  2. デフォルトで右上にあるデバイスパネル内で、下三角マークをクリックしてパネルメニューを広げます
  3. メニューからReset ADBを選択した後で、再度アプリケーション実行を試みてください

上記の方法でもまだうまくいかない場合は、以下の方法を試してみてください

  1. Eclipse画面の下部にあるコンソールと問題タブの内容をチェックして下さい
  2. もし何か記載されている場合は、おかしな点があるということになります
  3. 上記の問題点表示が古くて意味の無いものに思える場合は、コンソールを右クリック→クリアした上で、プロジェクトのクリーンを行ってください
  4. ビルドエラーが出た際にまず試してみるべき、プロジェクトのクリーン方法はEclipseのメニューからプロジェクト→クリーンを選択し、作業中のプロジェクトを選択するか全てクリーンを選択し、実行するというものです。

Eclipseがエミュレータと連携出来ていません

『実行』を押すとエミュレータは起動する(あるいは元々起動している)のにアプリケーションが実行されなかったり、そもそも『実行』を押しても何も起きなかったり、エミュレータがデバッガ接続待ち状態でハングしたり、Eclipse側でエミュレータやシェルが見つからなかったといったメッセージが出ていたりする場合は、Eclipseとエミュレータが連携できていないとみなせます。
このような場合には着実に、以下のステップに従って問題解決を行ってください

  1. エミュレータが動作している場合は終了する
  2. UNIXやMacならpsコマンドで、Windowsならタスクマネージャから、全てのエミュレータプロセスが終了しているかどうか確認し、終了していなければ強制終了する
  3. Eclipseを終了する
  4. コマンドラインから以下のコマンドを実行する
    adb kill-server
    
  5. Eclipseを起動する

Eclipseの設定画面で"Android"を選択すると、Unsupported major.minor version 49.0というエラーメッセージが表示されます

これは古いバージョンのJDKを利用している場合に表示されます。JDKのバージョン5あるいは6を利用してください。