Skip to content

Most visited

Recently visited

navigation

Capture and Read Bug Reports

A bug report contains device logs, stack traces, and other diagnostic information to help you find and fix bugs in your app. You can capture a bug report from your device by using either the Take bug report developer option on the device, or the adb bugreport command on your development machine.

Figure 1. Developer options

To take a bug report, you must have Developer options enabled on your device so you can access the Take bug report option.

Capture a bug report from the device

Figure 2. The bug report is ready

To get a bugreport directly from your device, do the following:

  1. Be sure you have Developer Options enabled.
  2. In Developer options, tap Take bug report.
  3. Select the type of bug report you want and tap Report.

    After a moment you get a notification that the bug report is ready (see figure 2).

  4. To share the bug report, tap the notification.

Capture a bug report using adb

To get a bugreport from the command line with adb, do the following.

With one device connected

With only one device connected to your computer, execute the following:

$ adb bugreport E:\Reports\MyBugReports

This example specifies an optional path to the bugreport option where the bug report is saved.

With multiple devices connected

With multiple devices connected, you must specify the device. Run the following adb commands to get the device serial number and generate the bug report.

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

$ adb -s 8XV7N15C31003476 bugreport

This example does not specify the optional path, so the bug report is saved to the local directory.

Inspect the bug report ZIP file

By default the ZIP file is called bugreport-BUILD_ID-DATE.zip and it it may contain multiple files, but the most important file is bugreport-BUILD_ID-DATE.txt. This is the bug report and it contains diagnostic output for system services (dumpsys), error logs (dumpstate), and system message logs (logcat). The system messages include stack traces when the device throws an error, and messages written from all apps with the Log class.

The ZIP file contains a version.txt metadata file that contains the Android release letter, and when systrace is enabled, the ZIP file also contains a systrace.txt file. The Systrace tool helps analyze the performance of your application by capturing and displaying execution times of your application processes and other Android system processes.

The dumpstate tool copies files from the device’s filesystem into the ZIP file under the FS folder so you can reference them. For example, a /dirA/dirB/fileC file in the device would generate an FS/dirA/dirB/fileC entry in the ZIP file.

Figure 3. Bug report file structure

For more information, see Reading Bug Reports.

Get reports from your users

Capturing bug reports as described above is helpful as you're using the app yourself, but your end-users can't easily share these types of bug reports with you. To get crash reports with stack traces from real-world users, you should take advantage of Google Play's and Firebase's crash reporting features.

Google Play Console

You can get reports from the Google Play Console to view data for crashes and application not responding (ANR) errors from users who installed your app from Google Play. Data is available for the previous six months.

For more information, see View crashes & application not responding (ANR) errors in Play Console help.

Firebase crash reporting

Firebase crash reporting creates detailed reports of the errors in your app. Errors are grouped into issues based on having similar stack traces, and triaged by the severity of impact on your users. In addition to automatic reports, you can log custom events to help capture the steps leading to a crash.

You'll start receiving crash reports from any user by simply adding the Firebase dependencies to your build.gradle file. For more information, see Firebase Crash Reporting.

This site uses cookies to store your preferences for site-specific language and display options.

Hooray!

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.

Take a one-minute survey?
Help us improve Android tools and documentation.