Google は、黒人コミュニティに対する人種平等の促進に取り組んでいます。取り組みを見る

バグレポートのキャプチャと確認

バグレポートには、アプリのバグを見つけて修正するのに役立つデバイスログ、スタック トレース、その他の診断情報が含まれます。バグレポートをデバイスからキャプチャするには、デバイスの [バグレポートを取得] 開発者向けオプション、Android Emulator メニュー、または開発マシンの adb bugreport コマンドを使用します。

図 1. 開発者向けオプション

バグレポートを取得するには、デバイスで開発者向けオプションを有効にして、[バグレポートを取得] オプションにアクセスできるようにする必要があります。

デバイスからバグレポートをキャプチャする

図 2. バグレポートの準備が完了

デバイスからバグレポートを直接取得する手順は次のとおりです。

  1. 開発者向けオプションを有効にします。
  2. [開発者向けオプション] で、[バグレポートを取得] をタップします。
  3. 希望するバグレポートのタイプを選択し、[レポート] をタップします。

    しばらくすると、バグレポートの準備が完了したという通知が表示されます(図 2 を参照)。

  4. バグレポートを共有するには、通知をタップします。

Android Emulator からバグレポートをキャプチャする

[File a bug] 機能は、Android Emulator の拡張コントロールから使用できます。

  1. エミュレータ パネルで その他アイコン をクリックします。
  2. [Extended controls] ウィンドウで、左側の [Bug report] を選択します。

    選択すると、スクリーンショット、AVD 設定情報、バグレポート ログなど、バグレポートの詳細を確認できる画面が開きます。再現する手順などのメッセージを入力して、レポートとともに保存することもできます。

  3. バグレポートの収集が完了するまで待ってから、[Save Report] をクリックします。

adb を使用してバグレポートをキャプチャする

接続しているデバイスが 1 つだけの場合、次のように adb を使用してバグレポートを取得できます。

$ adb bugreport E:\Reports\MyBugReports

バグレポートのパスを指定しない場合、ローカル ディレクトリに保存されます。

複数のデバイスが接続されている場合、-s オプションでデバイスを指定する必要があります。次の adb コマンドを実行して、デバイスのシリアル番号を取得し、バグレポートを生成します。

$ adb devices
List of devices attached
emulator-5554      device
8XV7N15C31003476 device

$ adb -s 8XV7N15C31003476 bugreport

バグレポートの ZIP ファイルを調べる

デフォルトで ZIP ファイルは bugreport-BUILD_ID-DATE.zip という名前であり、複数のファイルが含まれる場合があります。その中で最も重要なファイルは bugreport-BUILD_ID-DATE.txt です。このファイルがバグレポートであり、システム サービスの診断出力(dumpsys)、エラーログ(dumpstate)、システム メッセージログ(logcat)が含まれます。このシステム メッセージには、デバイスがエラーをスローしたときのスタック トレースと、Log クラスを持つすべてのアプリから書き込まれたメッセージが含まれます。

ZIP ファイルには Android リリースレターを含む version.txt メタデータ ファイルが含まれ、systrace が有効になっている場合、systrace.txt ファイルも含まれます。Systrace ツールを使用すると、アプリプロセスと他の Android システム プロセスの実行時間がキャプチャされて表示されるため、アプリのパフォーマンスを分析できます。

dumpstate ツールにより、デバイスのファイル システムのファイルが FS フォルダに ZIP ファイルとしてコピーされ、参照できるようになります。たとえば、デバイスの /dirA/dirB/fileC ファイルは、ZIP ファイル内の FS/dirA/dirB/fileC エントリになります。

図 3. バグレポート ファイルの構造

詳細については、バグレポートを読むをご覧ください。

ユーザーからレポートを取得する

アプリを自分で使用しているときには上記のようにしてバグレポートをキャプチャできますが、エンドユーザーからこのようなバグレポートを共有してもらうのは簡単なことではありません。実際のユーザーからスタック トレースを含むクラッシュ レポートを取得するには、Google Play と Firebase のクラッシュ レポート機能を利用する必要があります。

Google Play Console

Google Play Console からレポートを取得して、Google Play からアプリをインストールしたユーザーのクラッシュおよびアプリケーション応答なし(ANR)エラーのデータを表示できます。過去 6 か月のデータを確認できます。

詳細については、Play Console ヘルプのクラッシュと ANR(アプリが応答しない)エラーを確認する記事をご覧ください。

Firebase Crash Reporting

Firebase Crashlytics Reporting により、アプリのエラーに関する詳細なレポートが作成されます。エラーは、スタック トレースの類似性に基づいて問題別にグループ分けされ、ユーザーに与える影響の深刻度に応じて格付けされます。自動レポートだけでなく、カスタム イベントをログに記録して、クラッシュにつながる段階で捕捉することもできます。

build.gradle ファイルに Firebase の依存関係を追加するだけで、すべてのユーザーからクラッシュ レポートを受信できるようになります。詳細については、Firebase Crashlytics をご覧ください。