Исправляем 'crazy error' в эмуляторе Android
Короткий ответ: переключите Graphics AVD на Software (GLES 2.0) или Automatic, выполните Wipe Data и Cold Boot; если не помогает — обновите драйверы, проверте виртуализацию (Hyper‑V/KVM/HAXM) и при необходимости пересоздайте AVD. Ниже — пошагово для Windows, Linux и macOS.
Причины и признаки
'Crazy error' — собирательное название графических артефактов, черного экрана или зависания эмулятора. Частые причины:
- Несовместимость или баг драйвера GPU (особенно старые Intel/NVIDIA/AMD).
- Аппаратный рендер (Hardware GLES) конфликтует с возможностями хоста.
- Недостаток выделенных ресурсов (RAM, CPU).
- Конфликт виртуализации (Hyper‑V на Windows, неправильно настроенный KVM на Linux). Симптомы: полосы, искажения, зависание при загрузке, ошибки OpenGL в логах.
Быстрое решение — поменяйте графический режим (5 минут)
- Откройте AVD Manager (Tools → AVD Manager).
- Нажмите "Edit" (карандаш) рядом с проблемным AVD.
- В разделе Emulated Performance → Graphics выберите Software — GLES 2.0.
- В Advanced: установите Boot option → Cold Boot, отключите Enable device frame.
- Уменьшите RAM до ~1536–2048 МБ, VM Heap 256 МБ (для старых машин).
- Нажмите Wipe Data → Launch.
Результат: стабильность значительно выше, хотя производительность ниже.
Software‑режим медленнее, но решает большинство графических сбоев на старом железе.
Дополнительные исправления по платформам
Windows:
- Отключите Hyper‑V, если он не нужен: запустите PowerShell от администратора и выполните: Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All
- Обновите драйвер GPU (через штатные утилиты производителя).
- Обновите Intel HAXM через SDK Manager → SDK Tools (если используете HAXM).
- При проблемах с GPU пробуйте создать AVD с образами x86_64 и использовать Software рендер.
Linux:
- Убедитесь, что KVM установлен и пользователь в группе libvirt/kvm: sudo apt install qemu-kvm libvirt-daemon-system sudo adduser $USER kvm
- Запускайте эмулятор с поддержкой KVM: emulator -qemu -enable-kvm
- Проверьте 32‑bit библиотеки (libstdc++6:i386) для старых эмуляторов.
macOS:
- На Intel‑Mac используйте Automatic/Hardware при свежих драйверах; на Apple Silicon выбирайте образы, поддерживаемые ARM, и оставляйте Graphics → Automatic.
- Если Android Studio x86 не совместима, попробуйте сборку под Rosetta (для плагинов).
Не запускайте сразу несколько тяжёлых эмуляторов — они конкурируют за GPU/RAM и часто вызывают артефакты.
Что ещё можно сделать
- Удалите и создайте AVD заново: rm -rf ~/.android/avd/<имя>.avd
- Обновите Android Studio и SDK (включая платформенные инструменты и эмулятор).
- Тестируйте на реальном устройстве через USB (включите USB debugging) — это самый надёжный способ проверки.
- Если AVD постоянно нестабилен, используйте альтернативные решения (Genymotion, другие эмуляторы) или физический девайс.
Частые ошибки
- Оставляют Graphics на Hardware на старом ноутбуке — приводит к артефактам.
- Не делают Wipe Data при смене настроек — старые кеши мешают.
- Отключают виртуализацию в BIOS, забыв включить VT‑x/AMD‑V для HAXM/KVM.
- Обновляют только Android Studio, забывая обновить драйверы GPU.
FAQ
- Нужно ли переустанавливать Android Studio? Обычно нет — сначала пробуйте переключение Graphics и Wipe Data.
- Что быстрее: Software или Hardware? Hardware быстрее, но на старых/неправильных драйверах может ломаться; Software медленнее, но стабильнее.
- Как понять, что проблема в драйвере GPU? Если артефакты появляются и в других графических приложениях — вероятно драйвер. Обновите или откатите драйвер для теста.
Если после всех шагов ошибка остаётся — опишите конфигурацию (CPU, GPU, ОС, версия эмулятора, выбранный Graphics) и пересоздайте AVD под x86_64 — это обычно окончательно решает проблему.