Сообщение об ошибке эмулятора Android: "PANIC: Отсутствует программа для эмулятора эмулятора для" x86 "CPUS".
Я пытаюсь запустить Android-эмулятор с помощью AVD Manager.
это мой avd:
http://image-upload.de/image/fnx79V/52b0d050ee.png
и это происходит при запуске:
http://image-upload.de/image/vGpQfa/e912d83939.png
У меня есть Macbook Pro Retina. Установлен драйвер Haxm напрямую с Intel.
Эмулятор не работает. Все получают одно и то же сообщение об ошибке.
Running Command (Эта ошибка произошла, когда я использовал Homebrew для установки Android-sdk и Android-инструментов для платформы; любой, кто получит ту же проблему, должен удалить это или посмотреть, где находится конфликт)
export ANDROID_EMULATOR_DEBUG=1 test20
emulator:Found AVD name 'test20'
emulator:Found AVD target architecture: x86
emulator:Looking for emulator-x86 to emulate 'x86' CPU
emulator:Probing program: ./emulator-x86
emulator:Probing path for: emulator-x86
emulator:Found target-specific emulator binary: /usr/local/bin/emulator-x86
emulator:Probing for: /usr/local/bin/libOpenglRender.dylib
emulator:Probing for: /usr/local/bin/lib/libOpenglRender.dylib
emulator:Probing for: /usr/local/lib/libOpenglRender.dylib
emulator:Probing for: /usr/local/bin/lib64OpenglRender.dylib
emulator:Probing for: /usr/local/bin/lib/lib64OpenglRender.dylib
emulator:Probing for: /usr/local/lib/lib64OpenglRender.dylib
emulator:Could not find OpenGLES emulation host libraries!
emulator: ERROR: This AVD configuration is missing a kernel file!!
emulator -avd test21
emulator:Found AVD name 'test21'
emulator:Found AVD target architecture: x86_64
emulator:Looking for emulator backend for x86_64 CPU
emulator:Probing program: ./emulator-x86_64
emulator:Probing path for: emulator-x86_64
emulator:Looking for emulator-x86 to emulate 'x86_64' CPU
emulator:Probing program: ./emulator-x86
emulator:Probing path for: emulator-x86
PANIC: Missing emulator engine program for 'x86_64' CPUS.
После исправления проблемы с Homebrew:
Я немного потрудился и нашел это:
emulator64-x86 -avd test20
Creating filesystem with parameters:
Size: 69206016
Block size: 4096
Blocks per group: 32768
Inodes per group: 4224
Inode size: 256
Journal blocks: 1024
Label:
Blocks: 16896
Block groups: 1
Reserved block group size: 7
Created filesystem with 11/4224 inodes and 1302/16896 blocks
emulator: ERROR: Could not load OpenGLES emulation library: dlopen(lib64OpenglRender.dylib, 1): image not found
emulator: WARNING: Could not initialize OpenglES emulation, using software renderer.
HAX is working and emulator runs in fast virt mode
qemu: could not load PC BIOS 'bios.bin'
Для всех, у кого есть такая же проблема, возможно, эти шаги помогут:
Запустите свой эмулятор в режиме отладки:
export ANDROID_EMULATOR_DEBUG=1 emulatorName
Если есть путь, который выглядит странно проверять для других установок, таких как Homebrew, и удалить конфликт (удалить один)
Когда библиотека отсутствует, вам нужно экспортировать переменную:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ANDROID_HOME/tools/lib
И когда ошибка "qemu: не удалось загрузить BIOS BIOS" bios.bin ", появляется одно исправление для запуска эмулятора с полным путем:
/Applications/Android\ Studio.app/sdk/tools/emulator64-x86 -avd test20
In your case it is maybe a other path.
Ответы
Ответ 1
Если вы используете macOS, добавьте в путь каталог emulator
Android SDK и tools
:
Шаг 1: В моем случае важен порядок, сначала emulator
а затем tools
.
export ANDROID_SDK=$HOME/Library/Android/sdk
export PATH=$ANDROID_SDK/emulator:$ANDROID_SDK/tools:$PATH
Шаг 2: Перезагрузите .bash_profile
или .bashrc
зависимости от ОС
Шаг 3: Получить список доступных эмуляторов: $emulator -list-avds
Шаг 4: Запустите эмулятор из командной строки и замените avd
на имя вашего эмулятора $emulator @avd
Не забудьте добавить символ @
.
Это было протестировано с macOS High Sierra 10.13.4 и Android Studio 3.1.2.
Ответ 2
Следующий обходной путь для запуска emulator-x86 работал для меня:
cd $SDK/tools;
ln -s emulator64-x86 emulator-x86
Или в Windows откройте командную строку (Admin)
cd %ANDROID_SDK_ROOT%\tools
mklink emulator64-x86.exe emulator-x86.exe
И теперь эмулятор будет запускаться из менеджера SDK.
Примечание. Эмуляторы находятся в папке emulators
в более поздних версиях.
Ответ 3
У меня была эта проблема после обновления Android Studio до 3.2 и даже обновления некоторых SDK-пакетов.
Причина в том, что путь к эмулятору изменился, поэтому не используйте ...../Android/Sdk/tools/emulator
а вместо этого ....../Android/Sdk/emulator/emulator
.
Ответ 4
Перейдите в папку эмулятора, расположенную в Android SDK folder
/emulator
Android SDK folder
cd ${ANDROID_HOME}/emulator
Затем введите эти команды, чтобы открыть эмулятор без Android Studio:
$ ./emulator -list-avds
$ ./emulator -avd Nexus_5X_API_28_x86
Nexus_5X_API_28_x86
- это мой AVD, вам нужно дать имя своему AVD
Ответ 5
Для Windows 10, 5.29.18:
Используя командную строку, я только что попал в каталог эмулятора:
cd C:\Android\sdk\emulator
и затем набрал команду:
emulator -avd Nexus_S_API_27
Nexus_S_API_27
- это имя моего пользовательского эмулятора.
В противном случае он будет злоупотреблять
PANIC: Missing emulator engine program for 'x86' CPU.
Ответ 6
На Mac после установки Android Studio IDE android-studio-ide-173.4907809-mac.dmg
и использования Studio SDK Manager для установки SDK Tools
![enter image description here]()
Добавьте к своему PATH, используя ~/.profile
или ~/.bash_profile
и убедитесь, что в вашем $PATH
есть $ANDROID_HOME/emulator
прежде чем использовать $ANDROID_HOME/tools
:
export ANDROID_HOME=$HOME/Library/Android/sdk
export PATH=$PATH:$ANDROID_HOME/emulator
export PATH=$PATH:$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/tools/bin
export PATH=$PATH:$ANDROID_HOME/platform-tools
alias androidemulator='emulator -avd Nexus_5X_API_28_x86'
Ответ 7
Вы также можете попробовать то, что предлагается здесь: https://www.stkent.com/2017/08/10/update-your-path-for-the-new-android-emulator-location.html
Для краткости, запустите эмулятор из папки sdk/emulator
Ответ 8
Вы не можете запустить каталог emulator-x86, потому что для его установки необходимо настроить LD_LIBRARY_PATH, чтобы найти библиотеки эмуляции PC Bios и GPU (что "существует" эмулятор, он изменяет путь, а затем вызывает эмулятор-x86).
Вы обновили первый вывод? Похоже, что "эмулятор" все еще находит "/usr/local/bin/emulator-x86"
Ответ 9
Имел ту же проблему на Windows7 64bit. Причина, по которой это не так, отсутствовала в файле emulator-x86.exe
в разделе sdk/tools. Исправлено его, удалив Android SDK Tools с помощью Android SDK Manager и снова установив его. Теперь файл существует, и эмулятор работает как ожидалось.
Ответ 10
Есть два именованных двоичных файла emulator
. который находится в $SDK/tools/emulator
другой в $SDK/emulator/
- пожалуйста, убедитесь, что вы правильно настроили эмулятор (нужно добавить
$SDK/emulator
в PATH env
Я написал сценарий, чтобы помочь мне вызвать список AVD
#!/bin/bash -e
echo "--- $# $(PWD)"
HOME_CURRENT=$(PWD)
HOME_EMULATOR=/Users/pcao/Library/Android/sdk/emulator
if [ "$#" -eq 0 ]
then
echo "ERROR pls try avd 23 or avd 28 "
fi
if [ "$1" = "23" ]
then
echo "enter 23"
cd $HOME_EMULATOR
./emulator -avd Nexus_5_API_23_Android6_ &
cd $HOME_CURRENT
fi
if [ "$1" = "28" ]
then
echo "enter 28"
cd $HOME_EMULATOR
./emulator -avd Nexus_5_API_28_GooglePlay_ &
cd $HOME_CURRENT
fi
Ответ 11
Попробуйте выполнить следующую процедуру для запуска эмулятора-x86:
export LD_LIBRARY_PATH=$SDK/tools/lib:$LD_LIBRARY_PATH
$SDK/tools/emulator-x86 <your-other-options>
Где $SDK - это путь к установке SDK. Это вкратце, что "эмулятор" пытается сделать. Возможно, вы захотите запустить эмулятор64-x86 вместо эмулятора-x86, если он существует.
Ответ 12
Avast Antivirus воспринимает эмулятор-arm.exe как поток и блокирует некоторые причины. Когда вы добавляете исключения на странице Virus Chest с помощью щелчка правой кнопкой мыши → "восстановление и добавление исключений", он не будет решен в будущих версиях. Для решения этой проблемы в Avast 2015:
Настройки →
Активная защита →
Экран файловой системы →
Настроить →
Исключения затем добавляют поток как исключение. Затем нажмите ok.
Ответ 13
Удалите обе инструменты Android SDK и Android SDK PLatform-tools; затем загрузите оба пакета снова. Теперь создайте новый эмулятор и запустите его; это будет работать. Возможно, вы сможете запускать старые эмуляторы.
Ответ 14
Это работает для меня на MacOS:
echo 'export PATH=$PATH:'$HOME'/Library/Android/sdk/emulator:'$HOME'/Library/Android/sdk/tools:'$HOME'/Library/Android/sdk/platform-tools' >> ~/.bash_profile
source ~/.bash_profile
Ответ 15
НА WINDOWS - обновление системного пути у меня сработало. Создайте переменную окружения для местоположения вашего SDK с именем ANDROID_SDK
затем добавьте их в свой путь в следующем порядке:
%ANDROID_SDK%\emulator
%ANDROID_SDK%\platform-tools
%ANDROID_SDK%\tools
%ANDROID_SDK%\tools\bin
Ответ 16
Сначала проверьте путь, по которому вы получаете, с which emulator
и если вы получите /usr/local/share/android-sdk/tools/emulator
то удалите или переименуйте этот эмулятор (он старый) и вместо этого используйте /usr/local/share/android-sdk/emulator/emulator
который является новым путем.
Если вы используете Homebrew и устанавливаете вместе с brew cask install android-sdk android-studio
тогда вам необходимо:
- Проверьте .bashrc или .zshrc, что у вас установлены правильные пути:
# Remove $HOME/Library/Android paths
# The new way is to use ANDROID_SDK_ROOT
export ANDROID_SDK_ROOT="/usr/local/share/android-sdk"
# For good measure, add old paths to be backwards compatible with any scripts or
whatnot. And to hopefully decrease confusion:
export ANDROID_HOME=$ANDROID_SDK_ROOT
export ANDROID_NDK_HOME=$ANDROID_SDK_ROOT/ndk-bundle
-
Затем перезапустите вашу терминальную оболочку и убедитесь, что ваши пути соответствуют ожидаемым:
set | grep ANDROID
-
Наконец, с правильными путями, вам обычно нужно установить ndk и некоторые инструменты:
sdkmanager "ndk-bundle" "cmake;3.10.2.4988404" "lldb;3.1"
и проверьте список для других частей как этот sdkmanager --list
Я также закрыл Android Studio, удалил старую папку Android/Sdk из папки $ HOME и перезапустил Studio, и когда он спросил, куда ушел мой Sdk, я вставил путь Sdk: /usr/local/share/android-sdk
Ответ 17
В моем случае мне нужно было установить Android Emulator из Sdk manager, и это было исправлено
![enter image description here]()
Ответ 18
Я столкнулся с той же проблемой и никогда не работал для меня, кроме как до перехода в папку эмулятора
cd /android_home/emulator and run emulator
в конце концов, я пишу Elias для команды в файле .bashrc
alias emulator="$ANDROID_HOME/emulator/emulator"
Ответ 19
Это сообщение означает, что программа "emulator-x86" или "emulator64-x86" отсутствует в $SDK/tools/или по какой-либо причине не найдена.
Прежде всего, уверены ли вы, что у вас есть действительная загрузка/установка SDK?
Ответ 20
Проверьте, находится ли ваш .exe файл в карантине антивируса.
Решения:
- Загрузите adt-bundle снова с https://developer.android.com/tools/sdk.
- Откройте Zip файл.
- Скопируйте отсутствующие файлы .exe из папки
\sdk\tools
. - Вставьте скопированные файлы в каталог
Android\sdk\tools
.