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?
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:
@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!
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.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:
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.
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):
I started the
AVD (Android Virtual device)
manager from:start->programs->Android SDK Tools->AVD
Manager.I noticed the single entry listed for
Nexus_5_API_21_X86
had "?" next to Platform and other columns. This made me wonder why.I click "
Edit
" and specify the target platform, and other missing fields.Click the "Start" to start the
AVD
. After a min, you should also see the android emulator screen display.rerun cordova
(c:\Cordova\workshop>cordova emulate android)
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.
Hope this helps!