Сообщение об ошибке эмулятора 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'

Ответ 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 тогда вам необходимо:

  1. Проверьте .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
  1. Затем перезапустите вашу терминальную оболочку и убедитесь, что ваши пути соответствуют ожидаемым:

    set | grep ANDROID

  2. Наконец, с правильными путями, вам обычно нужно установить 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 файл в карантине антивируса.

Решения:

  1. Загрузите adt-bundle снова с https://developer.android.com/tools/sdk.
  2. Откройте Zip файл.
  3. Скопируйте отсутствующие файлы .exe из папки \sdk\tools.
  4. Вставьте скопированные файлы в каталог Android\sdk\tools.