Другое ANRСредняя

Исправляем ANR на Android: 5 проверенных способов решения

Ошибка ANR (Application Not Responding) блокирует использование приложения, появляясь при зависании главного потока. В статье разберем причины и дадим проверенные способы устранения проблемы на Android 10–13.

Обновлено 2 сентября 2026 г.
5-10 мин
Средняя
FixPedia Team
Применимо к:Android 10Android 11Android 12Android 13

Что означает ошибка ANR

Сообщение ANR (Application Not Responding) появляется на устройствах под управлением Android, когда приложение не обрабатывает входные данные пользователя в течение 5 секунд и более. Система блокирует взаимодействие с приложением и предлагает ждать или принудительно завершить процесс. Ошибка чаще всего возникает при попытке открыть меню, сохранить документ или переключить вкладку, если главный поток занят тяжелыми вычислениями.

Причины возникновения

  • Блокировка главного потока: Выполнение долгих операций (сети, обработка изображений, расчеты) прямо в UI-потоке приложения.
  • Неотвечающие диалоги или меню: Открытый выборник, подтверждение действие или системный диалог, который ожидает ввода пользователя.
  • Нехватка ресурсов: Мало свободной памяти или CPU, особенно на старших версиях Android или при многозадачности.
  • Баги в коде приложения: Неправильная обработка циклов жизни активности, утечки памяти или вечных ожиданий.
  • Старые версии ОС: Некоторые оптимизации ANR-таймаутов появились только в Android 10+.

Способы решения

Вот проверенные методы устранения ANR, от самых простых к более сложным.

Способ 1: Обновить приложение и систему

Перейдите в Google Play или Настройки → СистемаОбновление и проверьте наличие доступных обновлений. Часто ошибка ANR устраняется в новых версиях приложения, где разработчики исправляют блокировки потока и утечки памяти.

Способ 2: Очистить кэш и данные проблемного приложения

Зайдите в Настройки → Приложения, выберите приложение, выдающее ANR, и нажмите «Очистить кэш». Если помогает — отлично. В случаеPersistent ANR попробуйте «Очистить данные» (помним, что это удалит локальные настройки и кэш-файлы).

Способ 3: Использовать режим разработчика и профилирование ANR

Если вы обладаете устройством с включенными опциями разработчика, можно использовать команду ADB для вывода трассировки ANR:

adb logcat *:S ANR:*:V

Эта команда покажет системный лог, почему приложение не отвечает. В Android Studio можно открыть файл профиля traces.txt, чтобы увидеть точную точку зависания в коде.

Способ 4: Переместить тяжелые задачи в фоновые потоки

Перенесите операции сетевого запроса, обработку изображений или работу с базой данных в фоновые потоки с помощью WorkManager, Coroutines или AsyncTask. Never выполняйте тяжелую логику на главном потоке (UI thread), иначе ANR будет возвращаться.

Профилактика

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

  • Регулярно обновляйте приложения и систему Android до последних версий.
  • Избегайте блокировки главного потока: выносите вычисления длительностью более 5 секунд в фон.
  • Используйте инструменты мониторинга производительности, такие как Android Studio Profiler или Systrace, для выявления узких мест.
  • Тестируйте приложение на разных устройствах и версиях Android, особенно на конфигурациях с ограниченными ресурсами.

💡 Совет: Если вы разработчик, добавьте в манифест приложения атрибут android:allowBackup="false" только при необходимости, иначе лишние фоновые процессы могут способствовать перегрузке системы.

⚠️ Важно: Очистка данных приложения приведет к удалению сохраненных паролей, настроек и локальных файлов. Сделайте резервную копию важных данных перед этим действием.

Часто задаваемые вопросы

Что такое ANR и почему появляется?
Может ли ANR привести к потере данных?
Как предотвратить ANR на своем устройстве?

Полезное

Обновить приложение и систему
Очистить кэш проблемного приложения
Проверить активность фоновых процессов

Эта статья помогла вам решить проблему?