Cordova android emulation - Error: Cannot read property 'semver' of null

29,473

Solution 1

This is due using an emulator with an unstable Developer Preview API version.

You probably have a device using API 27 (Android 8.1).

Open your AVD, remove that device and re-run.

It's also useful to use --target <emulator_name> when launching the emulator if you have more than one.

To get a list of available names to use, call the emulate command with --list

Solution 2

The Mighty Chris is right, that is the problem and he fixed it upstream (thank you Chris!). However just to add to his answer, for people like me who cannot update cordova-android to include the patch, the fix is (for cordova-android v6.4.0):

  • find the path <project_root>/platforms/android/cordova/lib/emulator.js
  • find the line avd.target = 'Android ' + level.semver + ' (API level ' + api_level + ')';
  • replace it with avd.target = 'Android ' + (level ? level.semver : '') + ' (API level ' + api_level + ')';

Here is the relevant patch.

Solution 3

This is a bug in cordova-android's list_images method, it crashes when it encounters an android version on your system that's not in its list: https://github.com/apache/cordova-android/pull/422

You can apply the fix manually in platforms/android/cordova/emulator.js within your project

Solution 4

I had a similar problem and what I did was to run adb devices on the terminal to check if my device was prorprly connected or not and I found that my device was not connected properly, I think there was a problem with my USB cable and so I disconnected the cable and connected it again an ran the same command adb devices, then it showed my device as connected. My problem was solved, I hope it'll help someone else.

Share:
29,473
Admin
Author by

Admin

Updated on October 21, 2020

Comments

  • Admin
    Admin over 3 years

    Trying to emulate Android app with cordova, but get this error message:

    Built the following apk(s): /Users/jnj/cordova/hello/platforms/android/build/outputs/apk/android-debug.apk ANDROID_HOME=/Users/jnj/Library/Android/sdk JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home

    Error: Cannot read property 'semver' of null

    Any solutions?