Androidの実機でデバッグすると起動直後に停止する現象を解決する
とくにエラーもなく起動したかと思ったらすぐに停止してしまい、プログラムコードのどこにエラーがあるのかわからないという状況になります。今回はそのようなケースを想定し解決方法を書いていきたいと思います。
Android StudioのLogcatを参照する
どこを見てもエラー内容がわからない!?という場合は Android Studioの「Logcat」を参照します。
人によってAndroid Studioの表示方法が違うと思われますので、多少の表示の違いはあるかと思いますが「Logcat」は画像に示している部分にあります。エラー内容を参照しやすくするために画像で示している項目を「Error」に絞って表示させます。この画像には何も表示されていませんが、アプリを実機でデバッグし、起動直後に停止した場合まずLogcatを参照します。
logcatに表示されているエラーとは
おそらく必ず決まってこのエラーが出る、ということはないと思われますが、筆者のケースではNullPointerExceptionというエラーが表示されていました。このエラーは通常、変数の初期化が正しく行われていないときに起こってしまうようです。
Android Studioデバッグ直後に停止 → 筆者のケース
わたしの場合は publicなボタンを宣言してしまったことが原因でした。↓は間違ったコードの書き方です。
public Button button1 = (Button) findViewById(R.id.button1);
これはsetContentView(R.layout.main);の実行をとばして上記のような書き方をしてしまったことが原因でした。
まとめ
エラーのケースも一様ではないと思われますからまずは実機デバッグ直後に停止する場合は「Logcat」を参照しましょう。
別な話になりますがpublicなボタンの実装方法ですが、アプリの実装方法として2つあります
- デザインをxmlでプログラムの処理はjavaで記述する方法
- デザインとプログラムの処理を全てjavaで記述する方法
2.のデザインと処理をすべてjavaで記述する方法でコードを書けばpublicなボタンが実装できるかもしれません。
とりとめのない記事になってしまいましたが、Logcatに関して非常に参考になるサイトを発見しましたので、URLを貼っておきます。
Android実行時エラーのトラブルシューティング(初心者向け) – clock-up-blog
コメント