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

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

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

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

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

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

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

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

  2. Прикрепите диагностический отчет, чтобы мы могли отладить вашу проблему. Чтобы создать zip-файл диагностического отчета, нажмите Help > Collect Logs and Diagnostic Data .

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

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

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

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

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

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

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

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

Если IDE работает медленно, но не зависает, прикрепите файл idea.log к отчету об ошибке. Чтобы прикрепить файл, выберите Help > Collect Logs and Diagnostic Data или Help > Show Log in Files ( Help > Show Log in Finder на macOS). Этот файл показывает, выдает ли IDE ошибки в журнал.

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

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

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

  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 , найденный путем выбора Справка > Сбор журналов и диагностических данных или Справка > Показать файлы журнала ( Справка > Показать журнал в Finder на 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 Support .

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

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

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

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

    1. Выберите Файл > Структура проекта .
    2. Нажмите Проект .
    3. Найдите версию плагина Android Gradle .
  • Версия 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 Issue Tracker с заполненными необходимыми данными эмулятора.

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

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

  • Эмуляторная версия

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

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

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

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