简体   繁体   中英

Cordova android emulator stopped working

I'm building an app for Android using Cordova. The android emulator was working fine but I wasn't using it because I installed the Ripple emulator. I continued on building my app, but somewhere the emulator got corrupted.

When I execute the following:

cordova create test
cordova platform add android
cordova build
cordova emulate

Results in the following error:

    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)
    ]

I have Cordova 3.2 installed and the Android 4.3 API aswell as 4.4. I tried to reinstall Cordova with

npm uninstall cordova

And reinstall it again, but it is still producing the same error. I also reinstalled the Android SDK. This is the log when I run run.bat --emulator:

[ 'adb devices', null, 'List of devices attached \\r\\n\\r\\n', '' ] exec: android list avds [ 'android list avds', null, 'Available Android Virtual Devices:\\n Name: AVD_for_Nexus_S\\n Path: C:\\\\ Users\\\\Evers\\\\.android\\\\avd\\\\AVD_for_Nexus_S.avd\\n Target: Android 4.4 (API lev el 19)\\n ABI: armeabi-v7a\\n Skin: 480x800\\n', '' ] exec: android list avds [ 'android list avds', null, 'Available Android Virtual Devices:\\n Name: AVD_for_Nexus_S\\n Path: C:\\\\ Users\\\\Evers\\\\.android\\\\avd\\\\AVD_for_Nexus_S.avd\\n Target: Android 4.4 (API lev el 19)\\n ABI: armeabi-v7a\\n Skin: 480x800\\n', '' ] WARNING : no emulator specified, defaulting to AVD_for_Nexus_S Waiting for emulator... exec: adb devices events.js:72 throw er; // Unhandled 'error' event

Any clues?

Just re run after starting emulator manually.

Create Emulator

  1. type android in cmd and hit enter, a GUI will come.
  2. Under tools section click “manage AVDs” and follow the further instruction to create a new AVD.

Start Emulator

  1. emulator.exe -avd *avdname* in cmd (wait for few minutes for full start up)
  2. now re run cordova. it will work.

I Have recieved the same error myself, there may be 3 issues :

the emulator uses the apk file generated in the platforms/android/bin folder. sometimes this is missing so make sure to:

  1. cd platforms/android
  2. ant clean
  3. ant debug

Which will create the missing apk file if missing.

The second issue may have come with adding it to the emulator, which must be run prior:

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

There is also the option to delete and create the android virtual machine using:

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

hope this helps, let me know. There is very little documentation about this error.

@Tech Pro

Cordova 3.2 need Android KITKAT version sdk. So, the problem lies in your Android SDK version. There are two solutions of this problem.

Solution:1 :

Update your Android SDK to latest version or downgrade to Cordova version 3.0 as suggested by @Evers

Solution:2 : If you don't want to either upgrade the Android SDK or downgrade Cordova version then follow the steps here.

  1. Find the CordovaWebView.java file ({project}\\platforms\\android\\CordovaLib\\src\\org\\apache\\cordova)
  2. Go to Line No-296 and update the code as follows "android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KIT_KAT". Change your version code according to your SDK version from this link http://developer.android.com/reference/android/os/Build.VERSION_CODES.html . Ex: if you have Android 4.2 then chnage KITKAT into JELLY_BEAN.
  3. Comment out line No-299 ie //setWebContentsDebuggingEnabled(true);
  4. Now follow the steps given by @snake. ie ant clean and ant debug. I hope it will work

@Tech Pro This error may be caused by the undocumented fact that the virtual machine needs to be launched + unlocked before the emulate command is sent.

Make sure that a virtual machine has been created by Android virtual device manager by the following command:

android avd

Make sure the versions are correct with the compatibility for your app :) I'm sorry I got the late reply!

I was playing with the Cordova workshop tutorial and ran into a similar issue with the android emulator not starting. I checked the above answer but it still didn't work for me. So here is what I did (I'm using windows 7):

  1. I started the AVD (Android Virtual device) manager from:

    start->programs->Android SDK Tools->AVD Manager.

  2. I noticed the single entry listed for Nexus_5_API_21_X86 had "?" next to Platform and other columns. This made me wonder why.

  3. I click " Edit " and specify the target platform, and other missing fields.

  4. Click the "Start" to start the AVD . After a min, you should also see the android emulator screen display.

  5. rerun cordova (c:\\Cordova\\workshop>cordova emulate android)

  6. Voila! The command window then displays the compilation progress and finally, you should see the messages below. After another min, you should be able to find your app on the android emulator.

     BUILD SUCCESSFUL Total time: 1 mins 10.307 secs Built the following apk(s): C:\\Cordova\\workshop\\platforms\\android\\build\\outputs\\apk\\android-debug.apk Installing app on emulator... Using apk: C:\\Cordova\\workshop\\platforms\\android\\build\\outputs\\apk\\android-debug.apk Launching application... LAUNCH SUCCESS 

Hope this helps!

I finally found a work around. I don't know why Cordova 3.2 isn't able to start the emulator automatically on my system, because it does work on my laptop. Downgrading to 3.0 seems to fix the problem:

npm uninstall cordova
npm install -g cordova@3.0.0

My problem was due to the fact that I was running the android sdk manager through a symlink (I had it at usr/local/bin ). It started working when I put my $ANDROID_HOME/tools in my PATH and removed the symlinks.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM