ionic cordova 运行 android 导致 PANIC: Missing emulator engine program for 'x86' CPU
Posted
技术标签:
【中文标题】ionic cordova 运行 android 导致 PANIC: Missing emulator engine program for \'x86\' CPU【英文标题】:ionic cordova run android results in PANIC: Missing emulator engine program for 'x86' CPUionic cordova 运行 android 导致 PANIC: Missing emulator engine program for 'x86' CPU 【发布时间】:2018-09-11 02:16:05 【问题描述】:经过大量搜索,我运行时无法解决这个错误:
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
ps:当我运行 ionic cordova build android
时,它也可以正常工作
【问题讨论】:
【参考方案1】:从 SDK 工具版本 25.3.0 开始,模拟器已被移除并移至 ../sdk/emulator
。
只需将 $ANDROID_SDK_ROOT/emulator
设置为您的 $Path
变量,以便可以从命令行调用 emulator
并且 ionic cordova 将检测到模拟器。
【讨论】:
是的!似乎它可以解决问题。对于那些面临同样问题并且来自macOS setup page 的离子文档的人,请仔细检查此答案 这似乎是我正在寻找的答案。但恐怕它不够详细,无法提供帮助。如何更新我的 $path 变量,这与 macOS 设置页面的哪个部分有关? @JesperBylund 环境变量部分应该有所帮助.. 或检查类似***.com/questions/7501678/… 更改路径是否需要重启才能生效? @HamidAraghi 不在 Mac 中,如果您已在 bash_profile 中设置。您需要获取它或重新启动终端...【参考方案2】:我有同样的错误
@Suraj Rao 的回答实际上是正确的,但是随着这些变化,我的模拟器无法使用 ionic cordova emulate android 运行。我也改变了变量环境,在我的 $path 这个
$ANDROID_SDK_ROOT\tools\bin
为此
$ANDROID_SDK_ROOT\emulator\bin
我关闭了 cmd 并再次打开。然后,ionic cordova emulate android 运行正常!
【讨论】:
太棒了!很高兴知道。我通常运行ionc cordova run android -ls
来启动android模拟器【参考方案3】:
上面的答案似乎对你有用,这很好,但对于仍然遇到错误的其他人,请确保检查你的 android 虚拟设备正在使用哪个系统映像(你可以在 'API' 列下查看 android studio在 AVD 列表中)。
检查您没有使用任何太新的东西,我尝试使用 28 和 27 都没有工作,但 26 (Android Oreo 8.0) 没有
【讨论】:
使用 26 API 而不是 27-28 为我工作。谢谢!【参考方案4】:我尝试了很多这样的方法,虽然这可能不是所有人的解决方案,但我相信 Windows 用户会发现它很有帮助...我决定重新开始,我运行了一个 Kotlin 示例培训程序。说明提供了设置 Android Studio。我最终遇到了不同的错误,导致了下面的解决方案。
https://codelabs.developers.google.com/codelabs/build-your-first-android-app-kotlin/index.html#1
问题与 HAXM 有关。当它安装在 SDK 管理器中时,您必须运行位于 SDK 文件夹中的英特尔程序才能完全访问它。浏览到:
C:\Users\username\AppData\Local\Android\Sdk\extras\intel\Hardware_Accelerated_Execution_Manager
然后右键单击,以管理员身份运行文件 intelhaxm-android.exe 已修复...
【讨论】:
【参考方案5】:对于 Windows 用户:
只需将其添加到 PATH 变量中
C:\Users\lenovo\AppData\Local\Android\Sdk\emulator
【讨论】:
【参考方案6】:对于 Windows 用户:
1 - 将此添加到 PATH 变量 C:\Users\NameUserAccount\AppData\Local\Android\Sdk\emulator
2 - 重新启动 Windows。
【讨论】:
【参考方案7】:我遇到了同样的问题,但是将“sdk/emulator”添加到我的 PATH(我在 Windows 上)不起作用。 原因是工具和模拟器文件夹都包含一个 emulator.exe。 在 PATH 变量中,我将“sdk/emulator”文件夹向上移动到“sdk/tools”文件夹之前,以便在查找 emulator.exe 时首先检查它并解决了我的问题。
【讨论】:
【参考方案8】:简单的解决方案是首先从 AVD 管理器运行 android 模拟器,然后使用“cordova run android”在 android 上启动应用程序 此外,确保 ANDROID_SDK_ROOT 设置为 Android SDK Manager 中显示的路径(您可以使用 Android Studio 进行检查)。
【讨论】:
以上是关于ionic cordova 运行 android 导致 PANIC: Missing emulator engine program for 'x86' CPU的主要内容,如果未能解决你的问题,请参考以下文章
Ionic Cordova 运行 Android 并...去商店?
无法在 Android 上构建和运行基于 ionic 和 cordova 的应用程序