Android 使用-engine classic 时模拟器错误"Missing emulator engine program for 'x86' CPU"

Android Emulator Error "Missing emulator engine program for 'x86' CPU" when using -engine classic

我刚刚将我们的构建服务器的 Android Studio 更新为 2.3.1,并且不知何故模拟器停止为 Jenkin 的 Android 模拟器插件工作。该插件调用以下命令:

emulator -engine classic -ports 5754,5755 -report-console tcp:5866,max=60 -avd Nexus_4_API_23 -no-snapshot-load -no-snapshot-save -no-audio -gpu off

这曾经总是有效,但现在突然 returns 并出现以下错误:

恐慌:缺少 'x86' CPU 的模拟器引擎程序。

根据 Android SDK 管理器的报告,模拟器版本为 26.0.0。通过 Android Studio 打开模拟器工作正常,所以我尝试了一下命令,结果是 -engine classic 标志导致了这个,否则模拟器启动没有问题。

由于 Jenkins Emulator 插件依赖于 -engine classic 标志,我无法删除它。有没有人经历过这个并找到了解决方案?

我现在通过降级 Android SDK 工具来修复它,如 How to downgrade my SDK Version?

所示

目前26版好像有问题,或者他们禁用了经典引擎什么的。不过,我在发行说明中找不到任何内容。

我最近又回到了这个问题,为我修复它的是以下 jenkins 问题中的提示: https://issues.jenkins-ci.org/browse/JENKINS-43557

具体来说:

  1. Add to global Jenkins environment variables: LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ANDROID_HOME/tools/lib
  2. Add to android-emulator-plugin->Advanced->Emulator options: -engine auto

这是模拟器插件 v2.15 的样子

我认为问题是因为android sdk 文件夹中有很多名为'emulator' 的文件。 要从终端 window 调用模拟器, 您的 bash 文件应正确创建,模拟器文件夹的路径应添加到 bash 文件中,并确保它位于平台工具和工具路径之前。这是因为这些文件夹中也有模拟器文件。 bash 文件应该是-->

nano ~/.bash_profile

export ANDROID_HOME=Users/YOUR_MAC/Library/Android/sdk
export PATH=$ANDROID_HOME/emulator:$PATH
export PATH=$ANDROID_HOME/platform-tools:$PATH
export PATH=$ANDROID_HOME/tools:$PATH
export PATH=$ANDROID_HOME/tools/bin:$PATH

完成此操作后,您需要做的就是通过终端导航至 'emulator' 文件夹 --> cd Users/YOUR_MAC/Library/Android/sdk/emulator

现在要调用您通过 android studio 创建的模拟器,只需输入此命令 ./emulator @NexusDemo 您的模拟器名称应后跟 @。