Android模拟器错误消息:"PANIC:缺少'x86'CPUS的模拟器引擎程序."

Vis*_*res 186 android android-emulator

我正在尝试使用AVD Manager运行Android模拟器.这是我的avd:http://image-upload.de/image/fnx79V/52b0d050ee.png

这就是开始时发生的事情:

http://image-upload.de/image/vGpQfa/e912d83939.png

我有一个Macbook Pro Retina.直接从intel页面安装Haxm驱动程序.

没有模拟器正在工作.所有人都得到相同的"错误"消息.

运行命令(这个错误是当我使用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'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.
Run Code Online (Sandbox Code Playgroud)

用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'
Run Code Online (Sandbox Code Playgroud)

对于所有遇到相同问题的人,这些步骤可能会有所帮助:

在调试模式下运行模拟器:

export ANDROID_EMULATOR_DEBUG=1 emulatorName
Run Code Online (Sandbox Code Playgroud)

如果有一个看起来奇怪的路径检查其他安装,如Homebrew并删除冲突(卸载一个)

当库缺失时,您需要导出变量:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ANDROID_HOME/tools/lib
Run Code Online (Sandbox Code Playgroud)

当出现错误"qemu:无法加载PC BIOS'bios.bin'"时,一个修复就是以完整路径运行模拟器:

/Applications/Android\ Studio.app/sdk/tools/emulator64-x86 -avd test20
In your case it is maybe a other path.
Run Code Online (Sandbox Code Playgroud)

enr*_*eas 263

如果您使用的是macOS,请将Android SDK emulatortools目录添加到路径中:

第1步:在我的情况的顺序是非常重要的,第一emulator,然后tools.

export ANDROID_SDK=$HOME/Library/Android/sdk
export PATH=$ANDROID_SDK/emulator:$ANDROID_SDK/tools:$PATH
Run Code Online (Sandbox Code Playgroud)

第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/tools/emulator需要访问$ ANDROID_SDK/emulator /文件夹中的模拟器体系结构类型. (12认同)
  • 如果你有兴趣,我写了这个改变[这里](https://www.stkent.com/2017/08/10/update-your-path-for-the-new-android-emulator-location.html)在某些情况下:) (7认同)
  • 同样的答案也适用于Ubuntu 18.04 Bionic Beaver。 (2认同)

Ton*_*gfa 55

以下解决方案启动emulator-x86对我有用:

cd $SDK/tools; 
ln -s emulator64-x86 emulator-x86
Run Code Online (Sandbox Code Playgroud)

或者在Windows Win+ X>命令提示符(管理员)上

cd %ANDROID_SDK_ROOT%\tools
mklink emulator64-x86.exe emulator-x86.exe
Run Code Online (Sandbox Code Playgroud)

现在,模拟器将从SDK管理器启动.

注意:仿真器位于emulators更新版本的文件夹中.

  • 模拟器已从`tools`移出并进入`emulator`目录. (99认同)
  • 正如@rmtheis所说,不仅要创建一个符号链接并试图欺骗系统,还应检查并在路径中添加正确的可执行文件.运行`哪个模拟器'来检查实际被选中哪一个.`/ Users/{$ USER_NAME}/Library/Android/sdk/emulator/emulator`是要使用的正确可执行文件. (14认同)
  • 对于CLI开发人员,将所有`/ Users/amama/Library/Android/sdk/tools/emulator @ PIXEL_2_XL`更改为`/ Users/amama/Library/Android/sdk/emulator/emulator @ PIXEL_2_XL` (11认同)
  • @RayFoss的解决方案适用于Android 28 - 运行`emulator/emulator.exe`而不是`tools/emulator`. (5认同)

sut*_*her 54

将Android Studio升级到3.2后甚至升级了一些SDK-Packages,我遇到了这个问题.

原因是仿真器的路径已经改变,所以不要使用...../Android/Sdk/tools/emulator而是改为....../Android/Sdk/emulator/emulator.

  • 我正在使用 Android Studio 3.4.2,这个解决方案也对我有用。 (2认同)

小智 41

导航到位于Android SDK folder/ 内的模拟器文件夹emulator

cd ${ANDROID_HOME}/emulator

然后键入这些命令以打开没有android studio的模拟器:

---

$ ./emulator -list-avds

$ ./emulator -avd Nexus_5X_API_28_x86

[Nexus_5X_API_28_x86]是我的AVD [你需要提供你的AVD名称]


Cod*_*ife 18

对于Windows 10,5.29.18:

使用命令promt我刚进入模拟器目录:
cd C:\ Android\sdk\emulator,
然后键入命令:
emulator -avd Nexus_S_API_27
(顺便说一句,Nexus_S_API_27是我的自定义模拟器的名称)).

Othewize它会滥用:
PANIC:缺少' x86'CPU的模拟器引擎程序.
).

  • 在我的情况下,它在有效的AVD路径上抛出了“ PANIC:x86 CPU缺少仿真器引擎程序”。如/sf/answers/3613890661/中所述,较新版本的仿真器使用“ emulator / emulator”路径,而我是从“ tools / emulator”开始的。 (2认同)

Jea*_*ert 18

就我而言,这就像一个魅力:

  1. 打开终端

  2. 类型:open ~/.bash_profile

  3. 添加以下行:

    export ANDROID_SDK=$HOME/Library/Android/sdk
    export PATH=$ANDROID_SDK/emulator:$PATH
    export PATH=$ANDROID_SDK/tools:$PATH
    export PATH=$ANDROID_SDK/tools/bin:$PATH
    export PATH=$ANDROID_SDK/platform-tools:$PATH
    export ANDROID_SDK_ROOT=$ANDROID_SDK 
    export ANDROID_AVD_HOME=$HOME/.android/and
    alias emulator='$ANDROID_SDK/emulator/emulator'
    
    Run Code Online (Sandbox Code Playgroud)
  4. 保存(按Command+S)。您可以关闭窗口,也可以不关闭窗口。

  5. 返回终端,输入:source ~/.bash_profile

  6. 显示已安装的模拟器:emulator -list-avds,类似:

    Pixel_2_API_29
    Pixel_3a_API_29
    Pixel_C_API_29
    
    Run Code Online (Sandbox Code Playgroud)
  7. 最后,运行模拟器:emulator @Pixel_2_API_29


ilo*_*ett 16

安装Android Studio IDE android-studio-ide-173.4907809-mac.dmg并使用Studio SDK Manager安装SDK工具后在Mac上

在此输入图像描述

添加到您的路径中使用~/.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'
Run Code Online (Sandbox Code Playgroud)


Fra*_*con 9

在 macOS Mojave 10.14.5 上测试。

原因及解决方法:

我们使用sdk/tools/emulator,我们应该使用sdk/emulator

WM-C02WM0T3HTD8:~ zgong$ emulator -avd Pixel_3_XL_API_Q_x86
PANIC: Unknown AVD name [Pixel_3_XL_API_Q_x86], use -list-avds to see valid list.
HOME is defined but there is no file Pixel_3_XL_API_Q_x86.ini in $HOME/.android/avd
(Note: Directories are searched in the order $ANDROID_AVD_HOME, $ANDROID_SDK_HOME/avd, and $HOME/.android/avd)
WM-C02WM0T3HTD8:~ zgong$ emulator -avd Pixel_3_XL_API_Q
PANIC: Missing emulator engine program for 'x86' CPU.
Run Code Online (Sandbox Code Playgroud)

我们可以检查模拟器位置:

WM-C02WM0T3HTD8:~ zgong$ which emulator
/Users/zgong/Library/Android/sdk/tools/emulator
Run Code Online (Sandbox Code Playgroud)

我做了一堆谷歌搜索,虽然大多数答案都是关于在终端中正确设置路径,但事实证明这实际上与最新版本的 SDK 的转变有关,其中模拟器应用程序位于 /emulator 中/工具。留在这里以防万一遇到同样的问题。

我们需要使用如下:

{sdk location}/emulator -avd {avd name}

这是真正的输出:

WM-C02WM0T3HTD8:~ zgong$ /Users/zgong/Library/Android/sdk/emulator/emulator -avd Pixel_3_XL_API_Q
pc_memory_init: above 4g size: 40000000
emulator: WARNING: UpdateCheck: Failure: Error
emulator: WARNING: UpdateCheck: failed to get the latest version, skipping check (current version '29.2.1-5889189')
emulator: WARNING: UpdateCheck: Failure: Error
WebSocketServer listening on port 55850
Qt WebEngine ICU data not found at /Users/joshuaduong/qt-build-5.12.1/install-darwin-x86_64/resources. Trying parent directory...
Qt WebEngine ICU data not found at /Users/joshuaduong/qt-build-5.12.1/install-darwin-x86_64/resources. Trying parent directory...
Qt WebEngine ICU data not found at /Users/joshuaduong/qt-build-5.12.1/install-darwin-x86_64. Trying application directory...
Qt WebEngine ICU data not found at /Users/joshuaduong/qt-build-5.12.1/install-darwin-x86_64. Trying application directory...
Installed Qt WebEngine locales directory not found at location /Users/joshuaduong/qt-build-5.12.1/install-darwin-x86_64/translations/qtwebengine_locales. Trying application directory...
Qt WebEngine locales directory not found at location /Users/zgong/Library/Android/sdk/emulator/lib64/qt/libexec/qtwebengine_locales. Trying fallback directory... Translations MAY NOT not be correct.
Installed Qt WebEngine locales directory not found at location /Users/joshuaduong/qt-build-5.12.1/install-darwin-x86_64/translations/qtwebengine_locales. Trying application directory...
Qt WebEngine locales directory not found at location /Users/zgong/Library/Android/sdk/emulator/lib64/qt/libexec/qtwebengine_locales. Trying fallback directory... Translations MAY NOT not be correct.
Path override failed for key ui::DIR_LOCALES and path '/Users/zgong/.QtWebEngineProcess'
Path override failed for key ui::DIR_LOCALES and path '/Users/zgong/.QtWebEngineProcess'
Qt WebEngine resources not found at /Users/joshuaduong/qt-build-5.12.1/install-darwin-x86_64/resources. Trying parent directory...
Qt WebEngine resources not found at /Users/joshuaduong/qt-build-5.12.1/install-darwin-x86_64. Trying application directory...
Qt WebEngine resources not found at /Users/joshuaduong/qt-build-5.12.1/install-darwin-x86_64/resources. Trying parent directory...
Qt WebEngine resources not found at /Users/joshuaduong/qt-build-5.12.1/install-darwin-x86_64. Trying application directory...
[0403/154905.171893:WARNING:resource_bundle_qt.cpp(116)] locale_file_path.empty() for locale
[0403/154905.171871:WARNING:resource_bundle_qt.cpp(116)] locale_file_path.empty() for locale
Qt WebEngine ICU data not found at /Users/joshuaduong/qt-build-5.12.1/install-darwin-x86_64/resources. Trying parent directory...
Qt WebEngine ICU data not found at /Users/joshuaduong/qt-build-5.12.1/install-darwin-x86_64. Trying application directory...
Installed Qt WebEngine locales directory not found at location /Users/joshuaduong/qt-build-5.12.1/install-darwin-x86_64/translations/qtwebengine_locales. Trying application directory...
Qt WebEngine locales directory not found at location /Users/zgong/Library/Android/sdk/emulator/lib64/qt/libexec/qtwebengine_locales. Trying fallback directory... Translations MAY NOT not be correct.
Path override failed for key ui::DIR_LOCALES and path '/Users/zgong/.QtWebEngineProcess'
Qt WebEngine resources not found at /Users/joshuaduong/qt-build-5.12.1/install-darwin-x86_64/resources. Trying parent directory...
Qt WebEngine resources not found at /Users/joshuaduong/qt-build-5.12.1/install-darwin-x86_64. Trying application directory...
[0403/154907.393116:WARNING:resource_bundle_qt.cpp(116)] locale_file_path.empty() for locale
Run Code Online (Sandbox Code Playgroud)

参考:https : //www.reddit.com/r/androiddev/comments/a978kx/mac_can_run_emulator_fine_through_android_studio/

  • `.../sdk/emulator` 是我安装中的一个目录。可执行文件是“.../sdk/emulator/emulator” (2认同)

Vem*_*van 9

在我的情况下,通过这样做which emulator返回$ANDROID_HOME/tools/emulator 但它应该是$ANDROID_HOME/emulator/emulator

所以我只是说$ANDROID_HOME/emulator之前$ANDROID_HOME/tools在PATH变量,它现在工作正常


小智 8

只需按照以下特定于 Mac 的步骤即可:

  1. 去: /Users/{username}/Library/Android/sdk/emulator

  2. ./emulator -list-avds

  3. ./emulator @avdName


cao*_*eng 5

有两个命名的emulator二进制文件。在$SDK/tools/emulator另一个下$SDK/emulator/

  • 请确保您具有正确的模拟器配置(需要添加$SDK/emulator到您的环境路径中

我写了一个脚本来帮助我调用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


Run Code Online (Sandbox Code Playgroud)


小智 5

在 WINDOWS 上 - 更新系统路径对我有用。为您的 sdk 位置创建一个环境变量,ANDROID_SDK然后按以下顺序将它们添加到您的路径中:

%ANDROID_SDK%\emulator
%ANDROID_SDK%\platform-tools
%ANDROID_SDK%\tools
%ANDROID_SDK%\tools\bin
Run Code Online (Sandbox Code Playgroud)


Mor*_*goo 5

就我而言,我需要从 Sdk 管理器安装 Android 模拟器,并且它得到修复

在此输入图像描述