Сообщить об ошибке

Следуйте инструкциям на этой странице, чтобы составить отчет об ошибке. Ресурсы для исправления ошибок ограничены, поэтому приоритет отдается ошибкам, имеющим полную информацию. Неполные отчеты об ошибках закрываются. Если это произойдет, повторно отправьте сообщение об ошибке с дополнительной информацией.

Чтобы гарантировать, что вы не сообщите об уже исправленной ошибке, убедитесь, что вы используете последние версии инструментов. Вы также можете поискать похожие проблемы в системе отслеживания проблем Android Studio, чтобы узнать, сообщалось ли уже о вашей проблеме.

Как сообщить об ошибке

Чтобы сообщить об ошибке, выполните следующие действия:

  1. Чтобы открыть отчет об ошибке из Android Studio, выберите «Справка» > «Отправить отзыв» .

    Это самый простой способ инициировать ошибку, поскольку он заполняет отчет об ошибке версией Android Studio, версией Kotlin или Java, а также системной информацией, необходимой для правильного воспроизведения проблемы.

    Вы также можете сообщить об ошибке здесь и добавить информацию о версии самостоятельно.

  2. Прикрепите диагностический отчет, чтобы мы могли устранить вашу проблему. Чтобы создать ZIP-файл отчета о диагностике, нажмите «Справка» > «Собрать журналы и диагностические данные» .

  3. Опишите точные шаги для воспроизведения проблемы. Отправьте как можно больше информации, включая фрагменты кода, проект GitHub, который можно использовать для воспроизведения ошибки, а также снимки экрана или записи того, что вы наблюдаете.

  4. Опишите проблему подробно. Объясните, какой результат вы ожидали и что вместо этого наблюдали.

  5. Выберите описательное название для отчета об ошибке. Использование более описательного названия упрощает сортировку по проблемам.

Для некоторых ошибок нам нужна дополнительная информация, как описано в следующих разделах:

Подробности об ошибках Android Studio

Чтобы сообщить об ошибках, характерных для Android Studio, включите дополнительную информацию, как описано в этом разделе.

Если IDE зависает

Если сама IDE работает очень медленно или полностью зависла, создайте пару дампов потоков , как описано на этой странице, и прикрепите их к отчету об ошибке. Дампы потоков показывают, что делает IDE, что замедляет ее работу.

Если IDE работает медленно, но не зависает, прикрепите файл idea.log к отчету об ошибке. Чтобы прикрепить файл, выберите «Справка» > «Собрать журналы и диагностические данные» или «Справка» > «Показать файлы входа» ( «Справка» > «Показать поиск входа в систему» ​​на macOS). Этот файл показывает, выдает ли IDE ошибки в журнал.

Используйте профили ЦП для диагностики медленности

Если вы испытываете медлительность в Android Studio, профили ЦП иногда могут помочь диагностировать проблему.

Выполните следующие действия, чтобы записать профиль ЦП с помощью плагина тестирования производительности Android Studio:

  1. Установите плагин.

    • В Android Studio найдите «Тестирование производительности» на рынке плагинов.
    • Кроме того, вы можете загрузить версию, совместимую с Android Studio, с сайта плагина .
  2. Создайте профиль ЦП.

    1. Если Android Studio работает медленно, выберите «Начать профилирование использования ЦП» .
    2. Повторите несколько действий, для которых задержка является проблематичной (завершение кода, ввод текста и ожидание выделения и т. д.).
    3. Нажмите «Остановить профилирование использования ЦП» .
  3. Поделитесь файлом профиля.

    Появится всплывающее окно с именем файла снимка ЦП в формате snapshot-NNN . Поделитесь этим файлом снимка в своем отчете об ошибке.

Если в IDE не хватает памяти

Проблемы с памятью в Android Studio иногда сложно воспроизвести и сообщить о них. Чтобы помочь решить эту проблему, Android Studio включает отчет об использовании памяти, который вы можете отправить команде Android Studio, чтобы помочь определить источник проблем с памятью.

Запустить отчет об использовании памяти

Чтобы запустить отчет об использовании памяти, выполните следующие действия:

  1. Нажмите «Справка» > «Анализ использования памяти» в строке меню.

    Android Studio выгружает кучу и предлагает перезапустить IDE. Если вы перезапустите IDE, анализ дампа кучи начнется немедленно. В противном случае анализ дампа кучи начнется при следующем запуске Android Studio. В любом случае IDE уведомит вас, как только отчет об использовании памяти будет готов к рассмотрению, как показано на рисунке 1.

    Уведомление о том, что отчет об использовании памяти готов к просмотру
    Рис. 1. Уведомление об отчете об использовании памяти.
  2. Нажмите «Просмотреть отчет» .

    Прежде чем отправить отчет, вы можете просмотреть содержащуюся в нем информацию:

    Отчет об использовании памяти.
    Рисунок 2. Анализ отчета об использовании памяти.
  3. После завершения проверки скопируйте содержимое отчета в файл и прикрепите его к сообщению об ошибке .

    Отправка информации в отчете таким способом позволяет команде Android Studio связываться с вами с помощью средства отслеживания проблем при исследовании проблем с памятью.

Если IDE дает сбой или выдает исключения

Для других типов сбоев прикрепите найденный файл idea.log , выбрав «Справка» > «Собрать журналы и диагностические данные» или «Справка» > «Показать файлы журнала» ( «Справка» > «Показать поиск журнала в macOS»).

Создать дамп потока

Дамп потока — это распечатка всех потоков, работающих в JVM. Для каждого потока он включает распечатку всех кадров стека. Это позволяет легко увидеть, чем занята среда IDE, особенно если вы создаете пару дампов потоков с интервалом в несколько секунд.

Когда вы сообщаете об ошибках, когда IDE чрезвычайно загружена привязанным процессором или когда IDE кажется зависшей, дамп потока может точно определить, какой код выполняет большую работу или какие потоки конкурируют за ресурсы и вызывают взаимоблокировку.

В состав JDK входит инструмент jstack , который можно использовать для создания дампа потока. Сначала найдите идентификатор процесса (PID) процесса Android Studio. Для этого используйте команду jps :

В Linux или macOS:

jps -mv | grep studio

В Windows:

jps -mv | findstr studio

При этом выводится длинная строка, например:

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

Первое число (в данном примере 37605) — это идентификатор процесса.

Затем создайте дамп потока и сохраните его в файл dump.txt :

jstack -l pid >> dump.txt

Если это не сработает, есть несколько дополнительных способов создания дампа потока, зависящих от платформы. Подробные инструкции см. в разделе Поддержка IntelliJ .

Подробности об инструментах сборки и ошибках Gradle

Чтобы сообщить об ошибке в инструментах сборки или Gradle, прикрепите реальный или пример проекта, демонстрирующий проблему, чтобы гарантировать сбор всей необходимой информации. Удалите всю конфиденциальную информацию, прежде чем делиться ею.

Если вы не можете поделиться проектом, укажите версии используемых вами инструментов. (Попробуйте использовать последние стабильные или предварительные версии, прежде чем сообщать об ошибке). Чтобы найти версии вашего инструмента, выполните следующие действия:

  • Версия плагина Android Gradle:

    1. Выберите «Файл» > «Структура проекта» .
    2. Нажмите «Проект» .
    3. Найдите версию плагина Android Gradle .
  • Версия Градла:

    1. Выберите «Файл» > «Структура проекта» .
    2. Нажмите «Проект» .
    3. Найдите версию Gradle .
  • Версия Android Studio:

    1. Выберите «Справка» > «О программе» .
    2. Найдите версию Android Studio .

Кроме того, включите следующую информацию, если это применимо:

  • Если поведение неожиданно изменилось с более ранней версии на текущую, укажите обе версии.
  • Если сборка завершилась с ошибкой, запустите сборку из командной строки с параметром --stacktrace (например, ./gradlew <task> --stacktrace ) и укажите трассировку стека в своем отчете об ошибках.
  • Если сборка занимает больше времени, чем ожидалось, попробуйте одно из следующих действий:
    • Запустите ./gradlew <task> --scan и поделитесь сгенерированным сканированием сборки Gradle в своем отчете об ошибках.
    • Запустите ./gradlew <task> -Pandroid.enableProfileJson=true и поделитесь файлами трассировки Chrome, созданными в каталоге <root-project>/build/android-profile .

Подробности об ошибках эмулятора Android

Выполните следующие действия, чтобы использовать расширенные элементы управления эмулятора для сбора информации и регистрации ошибки:

  1. На панели эмулятора нажмите «Еще».
  2. В окне «Расширенные элементы управления» выберите «Отчет об ошибке» .

    Откроется экран с подробностями отчета об ошибках, такими как снимок экрана, информация о конфигурации AVD и журнал отчетов об ошибках. Вы можете ввести шаги для воспроизведения здесь или подождать и ввести их в отчет, созданный на следующем шаге.

  3. Подождите, пока отчет об ошибке не будет собран, затем нажмите «Отправить в Google» .

    Откроется окно, в котором вы можете сохранить отчет об ошибке в папке. Ваш браузер также откроется для создания отчета в системе отслеживания ошибок Google с заполнением необходимых данных эмулятора.

  4. В отчете укажите все оставшиеся сведения, например действия по воспроизведению ошибки, и прикрепите файлы, сохраненные при создании отчета об ошибке.

В противном случае вручную введите следующие данные:

  • Версия эмулятора

    1. В эмуляторе откройте Расширенные элементы управления .
    2. Нажмите «Справка» .
    3. Перейдите на вкладку «О программе» , чтобы найти версию эмулятора .
  • Версия инструментов Android SDK

    1. Выберите «Инструменты» > «Менеджер SDK» .
    2. Нажмите «Инструменты SDK» .
    3. Найдите Инструменты Android SDK .
  • Модель центрального процессора

    • В Linux: откройте /proc/cpuinfo .
    • В Windows: щелкните правой кнопкой мыши «Мой компьютер» и выберите «Свойства» .
    • В macOS: выберите значок Apple и нажмите «Об этом Mac».
  • Имя устройства

    1. В диспетчере AVD щелкните, чтобы открыть меню в столбце «Действия» для устройства.
    2. Выберите «Просмотреть подробности» (или откройте файл $avdname.avd/config.ini ).
    3. Найдите запись для hw.device.name . Например: hw.device.name=Nexus 5 .