Фоновое введение
Я использую относительно новый Android SDK, устанавливаю его на D -диск, а затем сохраняю устройство AVD на дисков D, установив переменную среды. Я запускаю симулятор в IDE. Когда я запускаю устройство через команду эмулятора о CMD, будет сообщена ошибкаPANIC: Missing emulator engine program for 'x86' CPU.
Причина объяснения
Я также видел эту причину, по которой я также видел Stackoverflow, то есть старая версия Android SDK использует исполняемую программу эмулятора в папке инструментов, поэтому то, что вы видите в Интернете, для настройки этих инструментов в переменные среды. Новая версия. Использовать исполняемую программу эмулятора в папке эмулятора, поэтому мы должны были настроить эту папку в переменную среды, или мы можем ввести эту папку
К сожалению, для новой версии Android SDK используется программа выполнения под эмулятором, я не нашел небольшого официального объявления
Объяснение этой проблемы Stackoverflow, которое я поместил здесь:https://stackoverflow.com/questions/51606128/windows-emulator-exe-panic-missing-emulator-engine-program-for-x86-cpu/51627009#51627009
Решение
Вы также можете настроить папку эмулятора в переменные среды. Обратите внимание, что переменные среды перемещаются на инструменты, или вы можете напрямую удалить переменную среды инструментов, потому что переменные среды Windows очень похожи на порядок зависимости выполнения Maven. Программа выполнения, сначала обнаруженная, ее можно выполнить и игнорировать то же имя после следующего
После большого количества поисков я не могу решить эту ошибку при запуске:
ionc cordova run android -ls
Выход:
ANDROID_HOME=/Users/lucianokrebs/Library/Android/sdk
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home
No target specified and no devices found, deploying to emulator
No emulator specified, defaulting to Nexus_5_API_P
Waiting for emulator to start...
PANIC: Missing emulator engine program for 'x86' CPU.
И эмулятор никогда не запускается
Кроме того, когда я бегу:
$ ${ANDROID_SDK_ROOT}/tools/emulator -avd my-custom-avd
Я получил: PANIC: Missing emulator engine program for 'x86' CPU.
Но когда я бегу:
$ ${ANDROID_SDK_ROOT}/emulator/emulator -avd my-custom-avd
Эмулятор запускается и работает нормально
Кажется, что cordova
устанавливает неправильный путь при попытке запустить эмулятор. Кто-то уже имел дело с этим?
ionic info:
cli packages: (/usr/local/lib/node_modules)
@ionic/cli-utils : 1.19.2
ionic (Ionic CLI) : 3.20.0
global packages:
cordova (Cordova CLI) : 8.0.0
local packages:
@ionic/app-scripts : 3.1.8
Cordova Platforms : android 7.0.0 ios 4.5.4
Ionic Framework : ionic-angular 3.9.2
System:
Node : v8.9.4
npm : 5.6.0
OS : macOS High Sierra
Xcode : Xcode 9.3 Build version 9E145
Environment Variables:
ANDROID_HOME : not set
Misc:
backend : pro
P.s: когда я запускаю ionic cordova build android
, он тоже работает нормально
8 ответов
Лучший ответ
С версии инструментов SDK 25.3.0 и далее эмулятор был удален и переехал в ../sdk/emulator
.
Просто установите ${ANDROID_SDK_ROOT}/emulator
в свою переменную $Path
, чтобы emulator
вызывался из командной строки, и ionic cordova обнаружит эмулятор.
17
Suraj Rao
2 Апр 2018 в 06:33
Кажется, что приведенные выше ответы сработали для вас, и это здорово, но для всех, кто все еще сталкивается с ошибкой, обязательно проверьте, какой образ системы использует ваше виртуальное устройство Android (вы можете проверить на Android Studio в столбце «API» в AVD список).
Убедитесь, что вы не используете ничего слишком нового, я пробовал использовать 28 и 27, и ни один не работал, но 26 (Android Oreo 8.0) сделал
9
Nicholas Xie
23 Май 2018 в 14:50
У меня была такая же проблема, но добавление «sdk / emulator» в мой PATH (я на Windows) не работало. Причина была в том, что и папки инструментов, и папки эмулятора содержали файл emulator.exe. В переменной PATH я переместил папку «sdk / emulator» вверх, перед папкой «sdk / tools», чтобы она сначала проверялась при поиске emulator.exe, и это решило мою проблему.
1
Clement Peronneaud
6 Ноя 2019 в 06:46
Я перепробовал многие из этих вещей, и хотя это может быть решением не для всех, я уверен, что пользователи Windows могут найти его полезным … Я решил начать все сначала и запустил одну из примеров обучающих программ для Kotlin. В инструкции приведена настройка Android Studio. Я закончил с различными ошибками, которые привели к решению ниже.
https://codelabs.developers.google.com/codelabs/build-your-first-android-app-kotlin/index.html#1
Проблема связана с HAXM. Пока он установлен в диспетчере SDK, вы должны запустить программу Intel, которая находится в папке SDK, чтобы получить к ней полный доступ. Перейдите к:
C:UsersusernameAppDataLocalAndroidSdkextrasintelHardware_Accelerated_Execution_Manager
И щелкните правой кнопкой мыши, запустите от имени администратора, файл intelhaxm-android.exe ИСПРАВЛЕНО …
Простое решение — сначала запустить эмулятор Android из AVD Manager, а затем запустить приложение на Android с помощью «cordova run android». Также убедитесь, что для ANDROID_SDK_ROOT указан путь, указанный в Android SDK Manager (вы можете проверить его с помощью Android Studio).
0
vikram singh
23 Фев 2020 в 17:13
Для пользователей Windows:
1 — Добавьте это в переменную PATH C: Users NameUserAccount AppData Local Android Sdk emulator
2 — Перезагрузите Windows.
0
Álvaro Blázquez Sarabia
6 Май 2019 в 17:47
У меня была такая же ошибка
По сути, ответ @Suraj Rao правильный, но с этими изменениями мой эмулятор не запускается с ionic cordova emulate android . Я изменил также в переменной среды, в моем $ path это
${ANDROID_SDK_ROOT}toolsbin
За это
${ANDROID_SDK_ROOT}emulatorbin
Я закрыл cmd и снова открыл. Тогда Ионная Кордова эмулирует Android работает нормально!
0
Suraj Rao
26 Сен 2018 в 15:48
Для пользователей Windows:
Просто добавьте это в переменную PATH
C:UserslenovoAppDataLocalAndroidSdkemulator
3
adiga
21 Мар 2019 в 07:50
Я пытаюсь запустить эмулятор 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.
эмулятор не работает. Все то же сообщение «Ошибка».
Запуск Команды (Эта ошибка была, когда я использовал Homebrew для установки Android-sdk и Android-platform-tools | любой, кто получает ту же проблему, должен удалить это или посмотреть, где конфликт)
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's 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.bin ‘» появляется, одно исправление-запустить эмулятор с полным путем:
/Applications/Android Studio.app/sdk/tools/emulator64-x86 -avd test20
In your case it is maybe a other path.
16 ответов
для меня работала следующая работа по запуску эмулятора-x86:
cd $SDK/tools;
ln -s emulator64-x86 emulator-x86
или на Windows Win + X > Командная Строка (Admin)
cd %ANDROID_SDK_ROOT%tools
mklink emulator64-x86.exe emulator-x86.exe
и теперь эмулятор начнется с менеджера SDK.
Примечание: эмуляторы расположенная в в более поздних версиях.
если вы используете macOS, добавьте оба Android SDK emulator
и 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.
перейдите к папке эмулятора, расположенной в Android SDK folder
/ emulator
cd ${ANDROID_HOME}/emulator
затем введите эту команду, чтобы открыть эмулятор без Android studio:
— — —
$ ./ эмулятор-list-avds
$ ./ эмулятор-avd Nexus_5X_API_28_x86
[Nexus_5X_API_28_x86] мой AVD [вам нужно дать свое имя AVD]
12
автор: abinthomas12914
попробуйте выполнить следующую работу для запуска эмулятора-x86:
export LD_LIBRARY_PATH=$SDK/tools/lib:$LD_LIBRARY_PATH
$SDK/tools/emulator-x86 <your-other-options>
где $SDK-это путь к вашей установке SDK. Это в двух словах то, что пытается сделать «эмулятор». Возможно,вы захотите запустить emulator64-x86 вместо emulator-x86, если первый существует.
имел ту же проблему на Windows7 64bit. Причина, почему он не пропал emulator-x86.exe
файл под sdk / tools. Исправлено путем удаления Android SDK Tools с помощью Android SDK Manager и установки его снова. Файл теперь существует, и эмулятор работает так, как ожидалось.
Avast Antivirus воспринимает эмулятор-arm.exe как поток и блокировка по некоторым причинам. Когда вы добавляете исключения на странице Virus Chest с правой кнопкой мыши — > «восстановить и добавить к исключениям», это не решается в будущих запусках. Чтобы решить это навсегда в Avast 2015:
настройки—>
Активная Защита ->
Экран Файловой Системы ->
настроить ->
исключения затем добавить поток в качестве исключения . А затем нажмите ладно.
Для Windows 10, 5.29.18:
используя команду promt я только что попал в каталог эмулятора:
компакт-диск C:Androidsdkemulator ,
а потом набрал команду:
эмулятор-avd Nexus_S_API_27
(кстати, Nexus_S_API_27is имя моего пользовательского эмулятора )).
Othewize он будет злоупотреблять :
PANIC: отсутствует программа Emulator engine для процессора x86.
).
есть два имени emulator
двоичный файл. который находится под $SDK / tools / emulator другой под $SDK / emulator/
- пожалуйста, убедитесь, что у вас есть правильная настройка эмулятора (нужно добавить $SDK/emulator в U env PATH
Я написал скрипт, который поможет мне вызвать список 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 [ "" = "23" ]
then
echo "enter 23"
cd $HOME_EMULATOR
./emulator -avd Nexus_5_API_23_Android6_ &
cd $HOME_CURRENT
fi
if [ "" = "28" ]
then
echo "enter 28"
cd $HOME_EMULATOR
./emulator -avd Nexus_5_API_28_GooglePlay_ &
cd $HOME_CURRENT
fi
на Mac после установки Android Studio IDE android-studio-ide-173.4907809-mac.dmg
и использование studio SDK Manager для установки SDK Tools
добавить в свой путь с помощью ~/.profile
или ~/.bash_profile
и $ANDROID_HOME/emulator
в своем $PATH
до $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'
вы не можете запустить каталог emulator-x86, потому что он должен иметь настройку LD_LIBRARY_PATH специально для поиска библиотек эмуляции Bios и GPU для ПК (поэтому существует «эмулятор», он изменяет путь, затем вызывает emulator-x86).
вы обновили первый выход ? Похоже, «эмулятор» все еще находит «/ usr / local/bin / emulator-x86»
удалите оба Android SDK Tools и Android SDK PLatform-tools; затем загрузите оба пакета снова. Теперь создайте новый эмулятор и запустите его; он будет работать. Возможно, вы сможете запустить ваши старые эмуляторы.
у меня была эта проблема после обновления Android Studio до 3.2 и даже обновления некоторых SDK-пакетов.
причиной было то, что путь к эмулятору изменилось, поэтому не используйте ...../Android/Sdk/tools/emulator
но вместо ....../Android/Sdk/emulator/emulator
.
это сообщение означает, что программа «emulator-x86» или «emulator64-x86» отсутствует в $SDK/tools/ или не может быть найдена по какой-либо причине.
прежде всего, вы уверены, что у вас есть действительная загрузка / установка SDK?
увидеть, если ваш .exe-файл находится в вашем антивирусном карантине
решение :
1-Загрузите ADT-bundle снова изhttps://developer.android.com/tools/sdk.
2-Откройте Zip-файл.
3 — скопировать недостающие .exe файлы из папки «sdktools».
4-мимо скопированных файлов в каталоге «Androidsdktools».
это сработало для меня на 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
@devoncarew A couple more things I found that seemed to help. Details in case anyone else stumbles on this thread and they might help.
- Revised what I had above and added just following global envir vars…
Added to Path:
C:Usersmy_userAppDataLocalflutterbin
C:Usersmy_userAppDataLocalAndroidSdkplatform-tools
C:Usersmy_userAppDataLocalAndroidSdktools
C:Usersmy_userAppDataLocalAndroidSdktoolsbin
New Envir Vars:
ANDROID_AVD_HOME: C:Usersmy_user.androidavd
ANDROID_EMULATOR_HOME: C:Usersmy_user.android
ANDROID_SDK_ROOT: C:Usersmy_userAppDataLocalAndroidSdk
- This next bit seemed to make more of a difference
.
I noticed that the global vars did not seem to get picked up by IntelliJ.
So in the generic settings of IntelliJ I added the following three vars same as in my system’s envir.
Then in the specific project structure settings, I set the JDK SDK loc and the Android SDK loc as these did not seem to get picked up any other way. Like so…
After this, at least on my Windows 10 box with only 64 bit apps, the AVD images started to work.
That’s the fresh ones as @geekrumper says, and not the default ones.
Although I did get the settings for my new pixel 2 xl image from the ones in Android Studio.
Interestingly after I made these changes I could open both x86_64 AND x86 bit AVD images.
Now this is never from that little dropdown. This is by starting the AVD Manager and starting the image from there.
So not from here (it always produced error):
But from here, I would pick an image and start it:
And then once the image was started, it interacted just fine with IntelliJ.
Then in the project structure specific settings I checked and added the following.
JDK path and the Android SDK path. First JDK then Android SDK.
Issue
On macOS Catalina 10.15.5, Android Studio 4.1.2, I try to start the emulator from the command line.
% ~/Library/Android/sdk/tools/emulator -list-avds
Pixel_XL_API_30
% ~/Library/Android/sdk/tools/emulator -avd Pixel_XL_API_30
PANIC: Missing emulator engine program for 'x86' CPU.
But I get an error saying PANIC: Missing emulator engine program for 'x86' CPU.
Solution
The cause was that the path to emulator had changed, so don’t use ...../Android/Sdk/tools/emulator
but instead ....../Android/Sdk/emulator/emulator
.
Refer to the User guide: Start the emulator from the command line.
% ~/Library/Android/sdk/emulator/emulator -avd Pixel_XL_API_30
You can set the environment variable through your user settings in the operating system, for example, in your .bashrc
file on Linux, or .zshrc
on macOS.
export PATH="$HOME/Library/Android/sdk/emulator:$PATH"
Restart the terminal, or after running source ~/.zshrc
, just use emulator
directly.
% emulator -avd Pixel_XL_API_30