ChatGPT解决这个技术问题 Extra ChatGPT

Android 模拟器错误消息:“恐慌:缺少 'x86' CPUS 的模拟器引擎程序。”

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

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

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

我有一个 Macbook Pro 视网膜。直接从英特尔页面安装 Haxm 驱动程序。

没有模拟器在工作。所有人都会收到相同的“错误”消息。

运行命令(当我使用 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: could not load PC BIOS 'bios.bin'”时,一种解决方法是使用完整路径运行模拟器:

/Applications/Android\ Studio.app/sdk/tools/emulator64-x86 -avd test20
In your case it is maybe a other path.
在我的情况下,出现此错误是因为 SDK 管理器没有安装 32 位二进制文件(emulator-arm 和 emulator-x86),但默认情况下模拟器程序仍在查找它们。删除并重新安装 sdk 工具并没有为我添加 32 个二进制文件。我可以通过从终端运行 emulator64-arm -avd 'avdname' 来启动模拟器,但我仍然无法让 Android Studio 的 AVD 管理器意识到它需要查找 64 位二进制文件。 Eclipse 的 AVD 管理器似乎还不错
无论我在 emulator 还是 tools 中,PATH 修复都没有对我有用 - 我必须根据这篇文章手动指定 -kernel 参数 stackoverflow.com/a/52161215/3700490
我刚刚留下了一个实际的解决方案,它解决了问题而不是解决它。
基于其中几个答案,为了节省辛苦的工作,我只是通过 SDK 管理器卸载并重新安装了 HAXM,问题就消失了。

v
vijay

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

第 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/tools/emulator 需要访问 $ANDROID_SDK/emulator/ 文件夹中的仿真器架构类型。
如果您对某些上下文感兴趣,我写了有关此更改 here 的文章 :)
同样的答案也适用于 Ubuntu 18.04 Bionic Beaver。
好的。这也修复了一个错误:“您的模拟器已过期,请通过启动 Android Studio 进行更新”
如果您使用的是 Windows 怎么办?
s
suther

在将 Android Studio 升级到 3.2 甚至升级一些 SDK 包后,我遇到了这个问题。

原因是模拟器的路径发生了变化,所以不要使用 ...../Android/Sdk/tools/emulator 而是使用 ....../Android/Sdk/emulator/emulator


我正在使用 Android Studio 3.4.2,这个解决方案也对我有用。
这对我有用。您知道如何将主模拟器快捷方式(软链接)更改为正确的快捷方式吗?
这个对我有用(没有改变可能导致另一个问题的路径和事情)。谢谢!
M
Miki Vanoušek

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

cd $SDK/tools; 
ln -s emulator64-x86 emulator-x86

或在 Windows 上打开命令提示符(管理员)

cd %ANDROID_SDK_ROOT%\tools
mklink emulator64-x86.exe emulator-x86.exe

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

注意:在较新版本中,模拟器位于 emulators 文件夹中。


模拟器已移出 tools 并移入 emulator 目录。
正如@rmtheis 所说,除了创建符号链接并试图欺骗系统之外,您还应该检查并在路径中添加正确的可执行文件。运行 which emulator 以检查实际选择的是哪一个。 /Users/{$USER_NAME}/Library/Android/sdk/emulator/emulator 是要使用的正确可执行文件。
@Sameer - 不确定您的建议是否解决了我的解决方案所做的相同问题。我的解决方案有效地修复了 SDK 中的错误。 IIRC,SDK 安装确实已经配置了路径,但遗憾的是错过了 64 位系统上的一些关键二进制文件。使用 which 不会找到正确的二进制文件,因为它最初不在路径中。我考虑了基于路径的解决方案,但认为符号链接解决方案更有可能在升级后幸存下来并且是自包含的。此外,听起来 SDK 创建者自 2015 年以来已经改变了一些东西,不确定我的解决方案是否相关。
对于 CLI 开发人员,将所有 /Users/amama/Library/Android/sdk/tools/emulator @PIXEL_2_XL 更改为 /Users/amama/Library/Android/sdk/emulator/emulator @PIXEL_2_XL
@RayFoss 的解决方案在 Android 28 上对我有用——运行 emulator/emulator.exe 而不是 tools/emulator
C
Christian Giupponi

导航到位于 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 名称


C
Christian Giupponi

对于 Windows 10、5.29.18:

使用命令提示符我刚刚进入模拟器目录:

cd C:\Android\sdk\emulator

然后输入命令:

emulator -avd Nexus_S_API_27

Nexus_S_API_27 是我的自定义模拟器的名称。

Othewize 它会滥用:

PANIC: Missing emulator engine program for 'x86' CPU.

就我而言,它在有效的 AVD 路径上抛出了 PANIC: Missing emulator engine program for 'x86' CPU.。如 stackoverflow.com/a/51627009/2914140 中所述,较新版本的模拟器使用 emulator/emulator 路径,而我从 tools/emulator 开始。
V
Vemuri Pavan

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

所以我只是在 PATH 变量中的 $ANDROID_HOME/tools 之前添加了 $ANDROID_HOME/emulator,现在它工作正常


就是这样。谢谢!
i
ilovett

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

https://i.stack.imgur.com/vQoyp.png

使用 ~/.profile~/.bash_profile 添加到您的 PATH 并确保在 $ANDROID_HOME/tools 之前的 $PATH 中有 $ANDROID_HOME/emulator,如下所示:

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'

这让我在 Windows 10 和 Android Studio 上找到了一个简单的解决方案。由于某种未知原因,没有安装模拟器,也没有检查 Android Emulator。(虽然我上周使用它,可能是 Android Studio 的拙劣更新)。检查它,单击应用按钮,安装模拟器,然后一切都很好。
C
Christian Giupponi

有两个名为 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



就我而言,这是因为 $ANDROID_SDK/tools 在 $ANDROID_SDK/emulator 之前的路径中。
F
Francis Bacon

在 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.

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

WM-C02WM0T3HTD8:~ zgong$ which emulator
/Users/zgong/Library/Android/sdk/tools/emulator

我做了一堆谷歌搜索,虽然大多数答案都是关于在终端中正确设置路径,但事实证明这实际上与最近版本的 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

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


.../sdk/emulator 是我安装中的一个目录。可执行文件是 .../sdk/emulator/emulator
J
Jeaf Gilbert

在我的案例中,这就像一个魅力:

打开终端类型:open ~/.bash_profile 添加以下行: 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' 保存(点击Command+ S)。您可以关闭或不关闭窗口。返回终端,输入:source ~/.bash_profile 显示已安装的模拟器:emulator -list-avds,类似于:Pixel_2_API_29 Pixel_3a_API_29 Pixel_C_API_29 最后,运行模拟器:emulator @Pixel_2_API_29


很好的答案。看起来您涵盖了为 Android Studio 设置新机器 PATH 的所有基础。
T
Tomerikoo

只需按照以下特定于 mac 的步骤操作:

转到:/Users/{username}/Library/Android/sdk/emulator ./emulator -list-avds ./emulator @avdName


C
Christian Giupponi

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

%ANDROID_SDK%\emulator
%ANDROID_SDK%\platform-tools
%ANDROID_SDK%\tools
%ANDROID_SDK%\tools\bin

M
Morteza Rastgoo

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

https://i.stack.imgur.com/pVYRu.png


B
Bakhshi

您也可以尝试这里的建议:https://www.stkent.com/2017/08/10/update-your-path-for-the-new-android-emulator-location.html

简而言之,从 sdk/emulator 文件夹运行模拟器


D
Dima Kozhevin

点击下面的命令。它对我有用。 Android 已将模拟器目录从 /tools 更改为 sdk/emulator

/Users/yourusername/Library/Android/sdk/emulator/emulator -avd Pixel_API_27

D
Digit

您无法启动 emulator-x86 目录,因为它需要专门设置 LD_LIBRARY_PATH 才能找到 PC Bios 和 GPU 仿真库(这就是“emulator”存在的原因,它会修改路径,然后调用 emulator-x86)。

你更新了第一个输出吗?看起来“模拟器”仍在寻找“/usr/local/bin/emulator-x86”


我现在没有在我的条目中修复它。如果其他人可能有这样的问题并看到我的问题,我会放在那里,但我会为其添加描述:D
D
Digit

尝试以下解决方法来启动 emulator-x86:

export LD_LIBRARY_PATH=$SDK/tools/lib:$LD_LIBRARY_PATH
$SDK/tools/emulator-x86 <your-other-options>

其中 $SDK 是您的 SDK 安装路径。简而言之,这就是“模拟器”试图做的事情。如果前者存在,您可能想要启动 emulator64-x86 而不是 emulator-x86。


不管怎么说,还是要谢谢你!你让我前进了很多步:)。我将导出与库路径一起使用并启动模拟器。现在他告诉我### emulator64-x86 -avd test20 | HAX 正在工作,模拟器在快速 girt 模式下运行 | qemu: could not load PC BIOS 'bios.bin' ### 一个文件仍然丢失
好的,如果我使用完整路径运行模拟器,这将得到解决,为什么会 Oo? /Applications/Android\ Studio.app/sdk/tools/emulator64-x86 -avd test20 也许你知道如何解决这个问题:D?
“bios.bin”的问题在这里解决了:groups.google.com/forum/#!msg/adt-dev/gwcLeOTfxD4/kW-qebk0C-wJ
模拟器已从 tools 移至 emulator
W
Wytas

在 Windows7 64 位上也有同样的问题。它没有丢失的原因是 sdk/tools 下的 emulator-x86.exe 文件。通过使用 Android SDK 管理器删除 Android SDK 工具并重新安装来修复它。该文件现在存在并且模拟器按预期工作。


删除 Android SDK 工具后 - 不要关闭 sdk 管理器。或者您无法再次安装它。没有警告的糟糕答案。
非常感谢,这解决了我在 Windows 10 64 位上的问题。我还按照@Kiran 的建议打开了我的 sdk 管理器
M
Mohannd

我遇到了同样的问题并且从来没有为我工作,除非去模拟器文件夹,我试图导出模拟器文件夹但对我不起作用

cd $android_home/emulator and run emulator

,最后,我为 .bashrc 文件中的命令编写 Elias

alias emulator="$ANDROID_HOME/emulator/emulator"

而不是 cd 到模拟器目录,将 $ANDROID_HOME/emulator 添加到 PATH 就足够了
我试图将模拟器文件夹添加到路径但没有奏效。
请确保在 $ANDROID_HOME/tools 之前添加它
c
canmurat

Avast Antivirus 将 emulator-arm.exe 感知为线程并因某些原因而阻塞。当您在 Virus Chest 页面中添加排除项时,右键单击 ->“恢复并添加到排除项”,它不会在以后的运行中解决。要在 Avast 2015 中永久解决此问题:

设置 ->

主动保护 ->

文件系统屏蔽 ->

自定义 ->

Exclusions 然后将线程添加为排除项。然后按确定。


d
dira

删除 Android SDK Tools 和 Android SDK PLatform-tools;然后再次下载这两个包。现在,创建一个新的模拟器并启动它;它会起作用的。您也许可以运行旧的模拟器。


安装模拟器然后从 Android Studio 启动它非常重要,因此模拟器首先引导 android
C
C.M.

这在 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

S
Simon B.

首先,检查您使用 which emulator 获得的路径,如果您获得 /usr/local/share/android-sdk/tools/emulator,则删除或重命名该模拟器(它是旧的)并改用 /usr/local/share/android-sdk/emulator/emulator,即 the new path

如果您使用的是 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

然后重新启动您的终端外壳,并检查您的路径是否符合您的预期: grep ANDROID 最后,设置正确的路径后,您通常需要安装 ndk 和一些工具:sdkmanager "ndk-bundle" "cmake;3.10.2.4988404" "lldb;3.1" 并检查列表中的其他部分,例如 sdkmanager --列表

我还关闭了 Android Studio,删除了我的 $HOME 文件夹下的旧 Android/Sdk 文件夹,然后重新启动了 Studio,当它询问我的 Sdk 去了哪里时,我粘贴了 Sdk 路径:/usr/local/share/android-sdk


U
U.A

对于 Ubuntu 用户

如果您收到 PANIC: Missing emulator engine program for 'x86' CPU. 此错误

尝试从 SDK 中的 emulator 文件夹启动您的模拟器,如上

usama@usama-Aspire-V5-471:~/Android/Sdk/emulator$ ./emulator -avd Pixel_2_API_29

我删除了链接并简单地解释了。谢谢
B
Bhavesh Lathigara

最新的 Android Studio 路径已更改。

使用下面的路径来定位模拟器

cd /Users/<username>/Library/Android/sdk/emulator

然后运行这个命令

./emulator -avd Pixel_2_XL_API_28

我的模拟器名称是“Pixel 2 XL API 28”

享受!


E
Evalds Urtans

适用于 OSX / MacOS 的示例(替换设备名称)

~/Library/Android/sdk/emulator/emulator @Pixel_2_API_28 -no-snapshot -wipe-data

N
Nil

添加在我的情况下可以接受的最低 Android 版本的虚拟设备对我有用。 (在此之前,我尝试了几个最新的 Android 版本并收到 Missing emulator engine program for 'x86_64' CPUS 错误。)


T
Tai Truong

我的问题是在 VS Code 中使用集成终端。这向我展示了不同的路径设置(因此首先显示的是工具路径而不是模拟器路径)。您只需使用正确的 bash 更改全局 vscode 设置,如下所述:https://stackoverflow.com/a/53971796/3437868


M
Martin Zeitler

问题源于 SDK 更改,因为 emulator 现在有自己的目录。
我没有注意到(也不关心)运行过时的模拟器,但它仍然可以工作......
这是一个停滞不前的 SDK移民。使用 -verbose 开关运行时:

emulator -avd Nexus_6_API_R -verbose

可以看到它开始恐慌的地方:

emulator:try dir C:\Android\tools
emulator:Looking for emulator-x86 to emulate 'x86' CPU
emulator:Probing program: C:\Android\tools/emulator-x86.exe
PANIC: Missing emulator engine program for 'x86' CPU.

但是没有可用的 emulator-x86.exe,实际的模拟器位于目录 emulator 中。卸载“SDK 工具”后(在尝试重新安装它们时),该条目意外地从列表中消失,留下一个空的 tools 目录,可以从 PATH 中删除和删除。

不需要也不建议使用 x86_64 仿真(因为这将运行停滞的仿真器版本)。通过卸载“SDK 工具”来适应 SDK 路径的变化是相当“答案”。可能只需将 PATH 上的 tools 替换为 emulator,但这会留下混乱。

为了比较,版本 30.3.5.0 的实际启动顺序应如下所示:

emulator: Android emulator version 30.3.5.0 (build_id 7033400) (CL:N/A)
emulator: Found AVD name 'Nexus_6_API_R'
emulator: Found AVD target architecture: arm
emulator: argv[0]: 'emulator.exe'; program directory: 'C:\Android\emulator'

如果可能有类似的后续错误:

PANIC: Broken AVD system path. Check your ANDROID_SDK_ROOT value

这意味着 *.ini 内的系统映像路径可能是错误的。
它有助于下载 x86 系统映像,然后创建一个新的模拟器。


G
Giszmo

这里的问题是由默认 AVD 在设置为“自动”时使用硬件加速 GLES 引起的。必须编辑 AVD 并将其设置为“软件 - GLES 2.0”

https://i.stack.imgur.com/lchlc.png