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 的应用程序

ionic运行ionic build android出错

Ionic 3 cordova运行错误

IONIC 3 [ERROR] 运行 cordova run android 时发生错误(退出代码 1)

Ionic Cordova 应用程序无法在 android 9 设备上运行