【问题标题】:Android Emulator Error Message: "PANIC: Missing emulator engine program for 'x86' CPUS."Android 模拟器错误消息:“恐慌:缺少 'x86' CPUS 的模拟器引擎程序。”
【发布时间】:2020-05-07 17:55:48
【问题描述】:

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

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

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

我有一台 Macbook Pro Retina。直接从英特尔页面安装 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,问题就消失了。

标签: android android-emulator


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    问题源于 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系统镜像,然后新建模拟器。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          【解决方案5】:

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

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

          【讨论】:

          • 就是这样。谢谢!
          【解决方案6】:

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

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

          2. ./emulator -list-avds

          3. ./emulator @avdName

          【讨论】:

            【解决方案7】:

            在我的情况下,这就像一个魅力:

            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'
              
            4. 保存(按Command+S)。您可以关闭或不关闭窗口。

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

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

              Pixel_2_API_29
              Pixel_3a_API_29
              Pixel_C_API_29
              
            7. 最后,运行模拟器:emulator @Pixel_2_API_29

            【讨论】:

            • 很好的答案。看起来您涵盖了为 Android Studio 设置新机器 PATH 的所有基础。
            【解决方案8】:

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

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

            【讨论】:

              【解决方案9】:

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

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

              【讨论】:

                【解决方案10】:

                在 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 而不是 /tools。把这个留在这儿 case 无论如何都会遇到同样的问题。

                我们需要如下使用:

                {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
                【解决方案11】:

                对于 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
                

                【讨论】:

                • 我已经删除了链接并简单地解释了。谢谢
                【解决方案12】:

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

                cd $android_home/emulator and run emulator
                

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

                alias emulator="$ANDROID_HOME/emulator/emulator"
                

                【讨论】:

                • cd添加到模拟器目录中,而不是将$ANDROID_HOME/emulator添加到PATH就足够了
                • 我尝试将模拟器文件夹添加到路径但没有成功。
                • 请确保在$ANDROID_HOME/tools之前添加
                【解决方案13】:

                在我的情况下,我需要从 SDK 管理器安装 Android Emulator 并且它得到了修复

                【讨论】:

                  【解决方案14】:

                  以下启动 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
                  【解决方案15】:

                  查看您的 .exe 文件是否在防病毒隔离区中

                  解决方案:

                  1. 再次从https://developer.android.com/tools/sdk下载adt-bundle。
                  2. 打开压缩文件。
                  3. 从文件夹 \sdk\tools 复制丢失的 .exe 文件。
                  4. 过去复制的文件在您的Android\sdk\tools 目录中。

                  【讨论】:

                    【解决方案16】:

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

                    【讨论】:

                      【解决方案17】:

                      有两个名为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 之前的路径中。
                      【解决方案18】:

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

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

                      【讨论】:

                        【解决方案19】:

                        对于 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.
                        

                        【讨论】:

                        • 在我的例子中,它在有效的 AVD 路径上抛出了 PANIC: Missing emulator engine program for 'x86' CPU.。如stackoverflow.com/a/51627009/2914140 中所述,较新版本的模拟器使用emulator/emulator 路径,而我从tools/emulator 开始。
                        【解决方案20】:

                        首先,检查您使用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 安装,那么您需要:

                        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,删除了我的$HOME文件夹下的旧Android/Sdk文件夹,然后重启了Studio,当它询问我的Sdk去了哪里时,我粘贴了Sdk路径:/usr/local/share/android-sdk

                        【讨论】:

                          【解决方案21】:

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

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

                          【讨论】:

                          • 我使用的是 Android Studio 3.4.2,这个解决方案也适用于我。
                          • 这对我有用。你知道如何将主模拟器快捷方式(软链接)更改为正确的吗?
                          • 这个对我有用(没有改变路径和可能导致另一个问题的东西)。谢谢!
                          【解决方案22】:

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

                          使用~/.profile~/.bash_profile 添加到您的PATH,并确保$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'
                          

                          【讨论】:

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

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

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

                          【讨论】:

                            【解决方案24】:

                            如果您使用的是 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 怎么办?
                            【解决方案25】:

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

                            【讨论】:

                              【解决方案26】:

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

                              【讨论】:

                              • 安装模拟器然后从 Android Studio 启动它非常重要,因此模拟器首先引导 android
                              【解决方案27】:

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

                              设置->

                              主动保护 ->

                              文件系统屏蔽 ->

                              自定义 ->

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

                              【讨论】:

                                【解决方案28】:

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

                                【讨论】:

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

                                尝试以下解决方法来启动 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
                                【解决方案30】:

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

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

                                【讨论】:

                                • 我现在没有在我的条目中修复它。如果其他人可能有这样的问题并看到我的问题,我会放在那里,但我会为其添加描述:D
                                猜你喜欢
                                • 2015-01-25
                                • 2019-01-11
                                • 2019-08-07
                                • 2019-03-07
                                • 2015-01-24
                                • 2019-04-01
                                • 2017-09-05
                                • 1970-01-01
                                相关资源
                                最近更新 更多