タカラモノデイズという Android のアプリケーションをリリースして、約1ヶ月経過した。タカラモノデイズは、赤ちゃんや子供、ペット、植物の成長記録を、スマートフォンで毎日簡単に作成できるアプリケーションで、成長記録は、写真にタイトルとメモをつけて残すことができるほか、その日の体調や、食事や排泄の回数を簡単に記録できるようにしている。機能的には難しいところはなさそうなのだが、Android は機種によって環境がまちまちなので、テストをしていると VM Heap が少ない機種では OutOfMemory が出てしまうこともあった。可能な限り、多くのテスト環境を作って試してみているが、クラッシュしてしまう機種もあるに違いない。
クラッシュした場合、Google Play Developer Console のクラッシュと ANR で自動的にわかるものだと思ってた(ANR は、Application Not Responding の略)。少し考えれば、自動的にエラーレポートが送られてくるわけがないことは分かるのだが、ずっと0件だったので気にしていなかった。
先日アップデートしたので、自分の Android 端末にインストールして試していたらクラッシュしてしまった。クラッシュするタイミングは、Android のデフォルトの言語を日本語から英語に変更した時なので、レアケースではあるが、リリースバージョンでバグが残っているのは好ましくない。
デバッグリリースであれば、LogCat で Exception の内容を確認したり、ステップ実行できるので、バグの発生箇所はすぐ分かるのだが、リリースバージョンの場合はできない。バグが出て慌てていたが、少し落ち着いて画面を見ると・・・
クラッシュしたことを告げる無情なダイアログの下に、「Report」の文字がある。いつも無条件に「Force close」を押していたが、これが Google Play Developer Console のクラッシュと ANR にレポートするためのボタンだった。早速「Report」を押してみると・・・
メモとシステムデータを送信してくれるようだ。早速送信して、Google Play Developer Console で確認してみた。
例外が表示されている箇所がリンクになっており、クリックするとスタックトレースを見ることができる。ProGuard を使っているのでわかりにくくなっているが、例外の発生箇所はだいたい分かる。残念なのは、クラッシュしたシステムの情報を表示できないことだ。システムデータを送信したはずなのだが、Google Play Developer Console で表示する箇所がないようだ。バグの原因は分かったので、早々にバグフィックスしてアップデートをリリースします。
タカラモノデイズのiPhone 版はこちら。