Кордова-эмуляция Android - Ошибка: невозможно прочитать свойство semver 'null

Попытка эмуляции приложения Android с помощью cordova, но получите это сообщение об ошибке:

Построен следующий 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/Содержание/Главная

Ошибка: невозможно прочитать "semver" свойства null

Любые решения?

Ответ 1

Это связано с использованием эмулятора с нестабильной версией API Preview Preview.

Возможно, у вас есть устройство, использующее API 27 (Android 8.1).

Откройте AVD, удалите это устройство и запустите его.

Также полезно использовать --target <emulator_name> при запуске эмулятора, если у вас более одного.

Чтобы получить список доступных имен для использования, вызовите команду emulate с помощью --list

Ответ 2

Могучий Крис прав, вот в чем проблема, и он исправил его вверх по течению (спасибо Крису!). Однако, чтобы добавить к его ответу, для таких людей, как я, которые не могут обновить кордову-андроид, чтобы включить исправление, исправление (для cordova-android v6.4.0):

  • найдите путь <project_root>/platforms/android/cordova/lib/emulator.js
  • найдите строку avd.target = 'Android ' + level.semver + ' (API level ' + api_level + ')';
  • замените его на avd.target = 'Android ' + (level ? level.semver : '') + ' (API level ' + api_level + ')';

Ответ 3

Это ошибка в методе rootova-android list_images, она вылетает, когда она встречает версию Android в вашей системе, которая не входит в ее список: https://github.com/apache/cordova-android/pull/422

Вы можете применить исправление вручную в platforms/android/cordova/emulator.js в своем проекте