いろいろ調べた結果、原因がわかったのですが、記事にまとめておこうと思います。
今後、同様にデバッグモードでアプリが落ちる現象に遭遇したらどんどん追記していこうと思います。
ネストされた関数にブレークポイントを設定している
ネストされた関数にブレークポイントを設定している場合に、デバッグモードで起動するとクラッシュします。
例えば、以下にようにGUIスレッド上で処理を行うようなコードがあったとします。
public void test() {
runOnUiThread(new Runnable() {
@Override
public void run() {
int i = 1;
i++; // <-ここにブレークポイントを設定するとクラッシュするよ!
}
}
}
このように場合に「i++」のコードはネストされた関数内のコードであり、ここにブレークポイントを設定し、デバッグモードで起動するとクラッシュします。