Кордова android эмулятор "не может прочитать свойство" заменить "undefined"
Только что установили последнюю версию Apache Cordova (7.0.1) в Windows, Android SDK, добавили платформу Android, и при попытке запустить эмулятор Android он скомпилирует все в порядке, но затем показывает:
Невозможно прочитать свойство "replace" из undefined
Без указания или чего-либо еще для отслеживания ошибки.
Ответы
Ответ 1
В форуме Ionic framework был найден следующий ответ, который решил проблему:
Отследить его до файла /platforms/android/cordova/lib/emulator.js строка 202:
var num = target.split('(уровень API') 1.replace(')', '' );
Замените его поиском и извлечением регулярных выражений:
var num = target.match(/\ d +/) [0];
Ответ 2
Случилось со мной на этой неделе.
Попытайтесь понизить платформу Android до 6.0.0, пока ионная команда не решит эту проблему.
Команды:
cordova platform rm Android
cordova platform add [email protected]
Ответ 3
Информация об устройстве
Команда
Я запускал следующую команду в Windows 10 с помощью ионной и имел ту же проблему:
ионная кордова эмулирует андроид
Ошибка
В терминале была отмечена следующая ошибка:
BUILD SUCCESSFUL
Total time: 1.775 secs
Built the following apk(s):
C:/ionic/quoteapp/platforms/android/build/outputs/apk/android-debug.apk
ANDROID_HOME=C:\Users\Arduino2\AppData\Local\Android\sdk
JAVA_HOME=C:\Program Files\java\jdk1.8.0_144
Error: Cannot read property 'replace' of undefined
Fix
Замена:
var num = target.split('(API level ')1.replace(')', '');
с
var num = target.match(/\d+/)[0]
как указано выше.
Файл в ионном проекте находится в вашей папке с ионным приложением в следующем каталоге:/platforms/android/cordova/lib/emulator.js
Я не придумал это исправление, просто хотел указать, какие команды и ошибки я получил, чтобы помочь другим.
Ответ 4
Если вы предпочитаете не изменять emulator.js(ответ Адриана), мне удалось обойти эту проблему, вручную запустив виртуальное устройство Android перед запуском cordova emulate android
.