プロジェクトをデバッグする


Android developers」のチュートリアルをみながら「Hello, World」アプリを作成しています。前回は「UI を XML レイアウトにアップグレードする」についてみました。
「Hello, World」アプリ作成のステップは次のようになります。

  1. AVD の作成
  2. 新規 Android プロジェクトを作成する
  3. UI を構築する
  4. アプリケーションを実行する
  5. UI を XML レイアウトにアップグレードする
  6. プロジェクトをデバッグする

今回はSTEP5の「プロジェクトをデバッグする」についてみていきます。

Step 6.UI を XML レイアウトにアップグレードする

チュートリアルに従ってエラーを発生させるコードを記述します。

package com.example.helloandroid;

import android.app.Activity;
import android.os.Bundle;

public class HelloAndroid extends Activity {
   /** Called when the activity is first created. */
   @Override
   public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       Object o = null;
       o.toString();
       setContentView(R.layout.main);
   }
}

Java の例外の一つであるNullPointerExceptionを発生させます。この例外はnull値の参照型変数を参照しようとした時に発生します。


Eclipseではデバッグ機能があるので左枠に警告アイコンが表示されます。警告アイコンをマウスオーバーすると警告内容が表示されます。今回はわざとエラーを発生させるのでそのまま実行します。実行方法については「AVDでアプリケーションを実行する」の記事で詳しく書きました。


「アプリHello,Androidは突然中断されました。再度試みてください」という内容のメッセージが表示されました。エラーが発生することがわかったので「Force close(強制終了)」ボタンを押してアプリケーションを終了します。


Eclipseの画面をデバッグ パースペクティブ(Debug Perspective)にします。
ウィンドウ > パースペクティブを開く > デバッグ
を選択することによりデバッグ パースペクティブにできます。


チュートリアルに従って、ソース コード内の 「Object o = null;」行にブレークポイントを設定します。該当するソース コード行の横にあるマーカー バーをダブルクリックします。青い丸が表示されたらブレークポイントができています。また「ブレークポイント」ビューにも表示されます。


メニューから [実行(Run)] > [ ヒストリーのデバッグ(Debug History)] > [Hello Android] を選択して、デバッグ モードに入ります。エミュレータでアプリケーションが再起動されますが、今度は、先ほど設定したブレークポイントに到達した時点で中断されます。このように


実行後にデバッグ パースペクティブをみます。デバッグビューをみるとブレークポイントで中断中であることがわかります。また変数ビューではブレークポイント時点での変数の内容をみることができます。
デバッグ パースペクティブを有効に使うことによりデバッグ処理や開発を効率化できます。

6回に分けてチュートリアルの「Hello, World」アプリ作成をみてきました。これで大体のAndroidアプリ開発の流れがわかってきたのではないかと思います。
ただAndroidアプリでは必ず理解しなければならないコンポーネントがあります。

  • アクティビティ
  • サービス
  • ブロードキャスト レシーバ
  • コンテンツ プロバイダ
  • インテント

これらは非常に重要です。「Android developers > 開発の基礎」にも説明されていますが、ここを読んだだけではイメージしにくいと思います。「Android developers > Developer Resources」にはいくつものサンプルコードやチュートリアルが準備されているので、まずは他人の作ったコードをいろいろ解析して慣れてから、上記重要コンポーネントについてまとめたいと思います。
次回からはチュートリアル「Hello, Views」を予定しています。様々なレイアウトの書き方の勉強です。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です