Report a bug

We want to fix your bugs! But many bugs don't include required information. So we are focusing our limited resources on bugs that have complete reports. To improve the chances of your bug being fixed, please take a moment to read this document.

If you don't follow these steps, we will close your bug. If that happens, simply resubmit with the additional information.

Also note that the issue tracker is not a support forum. If you have questions about how to use the tools, or how to get your Android app to work, please visit stackoverflow.com or one of the several Android developer support resources.

How to report a bug

  1. Make sure you are using the latest version of the tools. We spend a lot of time reviewing bugs that have already been fixed. If we close your issue and it's not resolved, please open another issue provided you can reproduce it using the latest version.

  2. Open a bug report from Android Studio by selecting Help > Submit Feedback. This is the easiest way to start a bug because it populates the bug report with your Android Studio version, Java version, and system information, which we need to properly reproduce the issue. (Otherwise, file your bug here and add the version information by hand.)

  3. Describe the exact steps to reproduce. If we can reproduce the issue on the first try, the odds of a fix are much better. If possible, include a code snippet (or better yet, point to a github project which can be used to reproduce the bug). Screenshots are also helpful to show what you are observing.

  4. Describe what you expected to happen, and what you instead observed.

  5. Pick a descriptive summary for the bug. You'd be surprised how many bugs are filed with the summary "Bug," "Issue," "Exception," "Not working," and so on, which makes it difficult for us to sort the issues.

  6. For certain kinds of bugs, we need additional information:

Details for Android Studio bugs

Include the following additional information that is specific for Android Studio bugs.

If the IDE hangs

If the IDE itself appears to be very sluggish or completely frozen, generate a couple of thread dumps and attach them to the bug report. These tell us what the IDE is so busy doing (or what contended resource it’s waiting for).

If the IDE is sluggish but not frozen, also attach the idea.log file (select Help > Show Log in Finder). This shows us whether the reason the IDE is sluggish is that it's constantly throwing errors into the log.

If the IDE runs out of memory

If the IDE is running out of memory, please generate a histogram of the heap by executing the following:

jmap -histo:live <pid>

If the IDE crashes or throws exceptions

For other types of crashes, attach the idea.log file. Select Help > Show Log in Finder.

Generating a thread dump

A thread dump is a printout of all the threads running in the JVM, and for each thread, a printout of all the stackframes. This makes it easy to see what the IDE is busy doing. Especially if you generate a couple of thread dumps a few seconds apart.

When you report bugs where the IDE is extremely busy with a pegged CPU, or where the IDE appears to have frozen, a thread dump can pinpoint either what code is doing a lot of work, or which threads are contending over resources and causing a deadlock.

The JDK ships with a tool named "jstack" which can be used to generate a thread dump. First you'll need to find the process id of the Android Studio process. You can use the "jps" command for that. (Both jstack and jps are in the bin directory of the JDK. If you have multiple JDKs installed, you should use the same version here as the one you are running Android Studio with, and you can see what version that is in Android Studio's About box.)

On Linux, Mac:

jps -mv | grep studio

For Windows:

jps -mv | findstr studio

For example, this will print out a long line like this:

$ jps -mv | grep studio
37605 -Dfile.encoding=UTF-8 -ea -Dsun.io.useCanonCaches=false -Djava.net.preferIPv4Stack=true -Djna.nosys=true ...

The first number on the left, 37605 in this case, is the process ID.

Next, you can generate a thread dump and save it to the file dump.txt like so:

jstack -l pid >> dump.txt

If that does not work, there are some additional platform-specific ways you can generate a thread dump; see IntelliJ Support for detailed instructions.

Details for Instant Run bugs

To report an issue with Instant Run, follow these steps:

  1. Enable Android Studio to log extra information about your Instant Run session.
  2. If you want to submit feedback about an issue you encountered before completing the previous step, try to recreate the issue.
  3. Submit a report immediately after you encounter an Instant Run issue.

What we collect

Enabling the IDE to log the following information about your Instant Run session helps the Android Studio team better understand the issue you encountered and is only ever used for that purpose:

  • idea.log: This log captures detailed information about Android Studio and its SDK tools as they perform their various actions. You can view this log for yourself by selecting Help > Show Log in Explorer (or Show Log in Finder on Mac).
  • build-info.xml: This is an intermediate file that Android Studio uses to coordinate Instant Run features with the Android plugin for Gradle.
  • build.log: This log captures build information from Gradle. This is similar to the output you see when you run Gradle with the --info command line option and click View > Tool Windows > Gradle Console (or click Gradle Console in the tool window bar).
  • Logcat output: captures Instant Run runtime events (that is, events with the InstantRun tag) from the target device or emulator while the app is running. To learn more about logcat outputs, read Write and View Logs with Logcat.
  • profile.log: This log provides a profile of how quickly Gradle progressed through each build task.
  • TARGET-*: This is an empty file that Android Studio names after your target device (for example, TARGET-MOTOROLA-NEXUS6).

Enable extra logging

To grant Android Studio permission to capture and send this information, follow these steps:

  1. Open the Settings or Preferences dialog.
  2. Navigate to Build, Execution, Deployment > Instant Run.
  3. Check the Log extra info checkbox. You can disable this option at any time.
  4. Click OK.

Report an issue

After you enable extra logging, recreate any Instant Run issue you previously experienced. Immediately after you reproduce an issue, submit a report as follows:

  1. Select Help > Report Instant Run Issue from the menu bar. A dialog appears, similar to the one shown in figure 4.

    Figure 4. You can provide extra details in the text field and review the logs Android Studio will send along with your report.

  2. Provide some additional information in the text field to describe your experience, such as steps to reproduce the issue or how actual behavior differed from your expectations.
  3. When you are done, click OK.

Details for build tools and Gradle bugs

Include the following information that is specific for problems related to building your projects or problems with Gradle sync:

  • Gradle version. Select File > Project Structure, click Project, and then locate Gradle version.
  • Android Plugin Version. On the same page as the Gradle version, locate Android Plugin Version.
  • Module Compile Sdk Version. From the above page, select your module in the left pane and locate Compile Sdk Version.
  • Module Build Tools Version. From the above page, locate Build Tools Version.
  • Android SDK Tools version. Select Tools > SDK Manager, click SDK Tools, and then locate Android SDK Tools

Details for Android Emulator bugs

The easiest way to gather the emulator details is to use the File a bug feature in the extended controls:

  1. Click More in the emulator panel.
  2. In the Extended controls window, select Bug Report on the left.

    This opens a screen where you can see the bug report details such as the screenshot, the AVD configuration info, and a bug report log. You can enter the steps to reproduce here or wait and type them into the report generated in the next step.

  3. Wait for the bug report to finish collecting, and then click Send to Google. This opens a window for you to save the bug report in a folder and then opens your browser to create a report in the Google Issue Tracker, with the necessary emulator details filled in.

  4. In the report, complete any remaining details such as the steps to reproduce the bug and attach the files saved when you created the bug report.

Otherwise, you must manually enter the following details:

  • Emulator Version. In the emulator, open the Extended controls, click Help, then click the About tab to find the Emulator version
  • Android SDK Tools version. Select Tools > SDK Manager, click SDK Tools, and then locate Android SDK Tools
  • Host CPU Model.
    • On Linux: Open /proc/cpuinfo
    • On Windows: Right-click My Computer and select Properties
    • On Mac: Click the Apple icon and click About This Mac
  • Device name. From the AVD Manager, click to open the drop-down menu in the Actions column for the device, and then select View Details (or open the $avdname.avd/config.ini file). Find the entry for hw.device.name. For example: hw.device.name=Nexus 5