Android Studioでのデバッグ方法

(ブログ記事の一覧は「こちら」)

Androidアプリの開発をスムーズに進めるために、Android Studioでのデバッグ方法を知っておくと便利です。ここでは代表的な方法を説明します。

実行中の変数の値を確認する(Logクラス、Logcat)

プログラム中にLogクラスのメソッドを記述することで、指定した変数がLogcat(Android Studio の左下あたりにある「Logcat」をクリックして表示される、ログ一覧)に出力されます。

(Logクラスはアプリ内のテキストファイルの読み込みでも説明しています。合わせて確認してください。)

簡単な例で説明します。以下のように、Logクラスのvメソッド(第1引数にタグ名、第2引数に出力したい変数(String型))を記述します。

public class MainActivity extends AppCompatActivity {

// private static final String TAG = "MainActivity"; // どちらでも同じ
    private static final String TAG = MainActivity.class.getSimpleName();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        String strText = "こんにちは";
        Log.v(TAG, strText);
    }
}

このプログラムを実行すると、「Logcat」に以下のようなログが出力されます。

f:id:MJeeeey:20191112021826p:plain

Logクラスは気軽に変数の値を確認するのに便利な方法ですので、活用することをお勧めします。

実行中のプログラムを手動で進める(ブレークポイント

先ほどのLogクラスの方法は、実行中のプログラムの処理が次々と進んでいく状況で確認しました。
次に、実行中のプログラムの処理を途中で止めて、1行ずつ手動で進めて確認する、デバッグの方法について確認していきます。

ブレークポイントを設定する

ブレークポイントを設定したい行の左端をクリックします。下図のように赤いマークが表示されることを確認してください。

f:id:MJeeeey:20191112021830p:plain

アプリをデバッグで実行する

ツールバーから「Debug 'app'」(虫のマーク)をクリックします。アプリがデバッグモードで起動します。

f:id:MJeeeey:20191112021834p:plain

ステップ実行をする

プログラムがブレークポイントを設定した行に到達すると、プログラムの処理が停止して、下部に「Debug」が表示されます。

f:id:MJeeeey:20191112021837p:plain

赤枠内のボタンは、左から「ステップオーバー」「ステップイン」「強制ステップアウト」「ステップアウト」です。よく使うボタンについて説明します。
「ステップオーバー」は、プログラムを1行ずつ進んでいきます。単純に1行ずつ調べたいときに使用します。
「ステップイン」は、メソッドに入っていきます。詳しく調べたいときに使用します。

デバッグを終了する

下図の赤枠内のボタンのいずれかをクリックすると、デバッグが終了します。

f:id:MJeeeey:20191112021841p:plain

緑のボタンをクリックすると、ブレーク状態は解除され、アプリが操作できるようになります。赤のボタンをクリックすると、アプリは終了します。

実行時にアプリが落ちてしまう場合

プロジェクトのビルドが通り、アプリを起動することができても、操作していると突然アプリが終了してしまうことがあります。それは実行したプログラムがエラーとなった場合に起こります。
下図のように「Run」をクリックすると、エラーとなったプログラムの箇所を知ることができます。リンクをクリックすると、エラーとなった行に移動することができますので、原因を調べて修正しましょう。

f:id:MJeeeey:20191112021846p:plain