Cordova android模拟器停止工作

时间:2013-12-02 16:26:32

标签: android cordova emulation

我正在使用Cordova为Android构建应用。 Android模拟器工作正常,但我没有使用它,因为我安装了Ripple模拟器。我继续构建我的应用程序,但某处模拟器已损坏。

执行以下操作时:

cordova create test
cordova platform add android
cordova build
cordova emulate

导致以下错误:

    Error: An error occurred while emulating/deploying the android project.
    events.js:72
            throw er; // Unhandled 'error' event
          ^
    Error: spawn ENOENT
        at errnoException (child_process.js:980:11)
        at Process.ChildProcess._handle.onexit (child_process.js:771:34)
    ]

我安装了Cordova 3.2,Android 4.3 API以及4.4。我尝试用

重新安装Cordova
npm uninstall cordova

然后重新安装它,但它仍然会产生相同的错误。我还重新安装了Android SDK。这是我运行run.bat --emulator:

时的日志
['adb devices',null,'附加设备列表\ r \ n \ r \ n',''] exec:android list avds ['android list avds',   空值,   '可用的Android虚拟设备:\ n名称:AVD_for_Nexus_S \ n路径:C:\\ 用户\\ Evers \\。android \\ avd \\ AVD_for_Nexus_S.avd \ n目标:Android 4.4(API列表 el 19)\ n ABI:armeabi-v7a \ n皮肤:480x800 \ n',   ''] exec:android list avds ['android list avds',   空值,   '可用的Android虚拟设备:\ n名称:AVD_for_Nexus_S \ n路径:C:\\ 用户\\ Evers \\。android \\ avd \\ AVD_for_Nexus_S.avd \ n目标:Android 4.4(API列表 el 19)\ n ABI:armeabi-v7a \ n皮肤:480x800 \ n',   ''] 警告:未指定模拟器,默认为AVD_for_Nexus_S 等待模拟器...... exec:adb设备 events.js:72         扔掉//未处理的'错误'事件

任何线索?

7 个答案:

答案 0 :(得分:35)

手动启动模拟器后重新运行。

创建模拟器

  1. 在cmd中键入android并按Enter键,将出现GUI。
  2. 在工具部分下,点击“管理AVD”,然后按照进一步的说明创建新的AVD。
  3. 启动模拟器

      在cmd中
    1. emulator.exe -avd *avdname*(等待几分钟完全启动)
    2. 现在重新开始使用cordova。它会起作用。

答案 1 :(得分:6)

我自己也收到了同样的错误,可能有3个问题:

模拟器使用在platforms / android / bin文件夹中生成的apk文件。有时这是遗漏的,所以一定要:

  1. cd platforms / android
  2. ant clean
  3. ant debug
  4. 如果丢失,将创建丢失的apk文件。

    第二个问题可能是将它添加到模拟器,必须先运行:

    How to install an apk on the emulator in Android Studio?

    还可以选择使用以下命令删除和创建Android虚拟机:

    http://developer.android.com/tools/devices/index.html

    的AVD

    希望这有帮助,请告诉我。关于此错误的文档很少。

答案 2 :(得分:2)

@Tech Pro

Cordova 3.2需要Android KITKAT版本sdk。所以,问题在于你的Android SDK版本。这个问题有两种解决方案。

<强>解决方案:1

按照@Evers

的建议,将您的Android SDK更新到最新版本或降级到Cordova 3.0版

<强>解决方案:2 : 如果您不想升级Android SDK或降级Cordova版本,请按照此处的步骤操作。

  1. 找到CordovaWebView.java文件({project} \ platforms \ android \ CordovaLib \ src \ org \ apache \ cordova)
  2. 转到第296行并更新代码如下“android.os.Build.VERSION.SDK_INT&gt; = android.os.Build.VERSION_CODES.KIT_KAT”。根据您的SDK版本从http://developer.android.com/reference/android/os/Build.VERSION_CODES.html链接更改您的版本代码。例如:如果你有Android 4.2,那么将KITKAT引入JELLY_BEAN。
  3. 注释掉第299行,即// setWebContentsDebuggingEnabled(true);
  4. 现在按照@snake给出的步骤进行操作。即蚂蚁清洁和蚂蚁调试。 我希望它能运作

答案 3 :(得分:1)

@Tech Pro此错误可能是由于在发送模拟命令之前需要启动和解锁虚拟机的未记录事实引起的。

确保Android虚拟设备管理器通过以下命令创建了虚拟机:

android avd

确保版本与您的应用程序兼容性正确:)对不起,我收到了迟到的回复!

答案 4 :(得分:1)

我正在玩Cordova研讨会教程并遇到类似的问题,Android模拟器无法启动。我检查了上面的答案,但它仍然不适合我。所以这就是我所做的(我使用的是Windows 7):

  1. 我从{<1}}经理开始:

    AVD (Android Virtual device)经理。

  2. 我注意到为start->programs->Android SDK Tools->AVD列出的单个条目有&#34;?&#34;在Platform和其他列旁边。这让我想知道为什么。

  3. 我点击&#34; Nexus_5_API_21_X86&#34;并指定目标平台和其他缺少的字段。

  4. 点击&#34;开始&#34;开始Edit。一分钟之后,你还应该看到android模拟器屏幕显示。

  5. 重新运行cordova AVD

  6. 瞧!然后,命令窗口显示编译进度,最后,您应该看到下面的消息。再过一分钟,您应该能够在Android模拟器上找到您的应用程序。

    (c:\Cordova\workshop>cordova emulate android)
  7. 希望这有帮助!

答案 5 :(得分:0)

我终于找到了解决方法。我不知道为什么Cordova 3.2无法在我的系统上自动启动模拟器,因为它可以在我的笔记本电脑上运行。降级到3.0似乎解决了这个问题:

npm uninstall cordova
npm install -g cordova@3.0.0

答案 6 :(得分:0)

我的问题是因为我通过符号链接运行了android sdk管理器(我在usr/local/bin处得到了它)。当我将$ANDROID_HOME/tools放入PATH并删除符号链接时,它就开始工作了。