Кордова-эмуляция 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
в своем проекте