android - run - cordova version
Cordova android emulator "no se puede leer la propiedad ''replace'' of undefined" (4)
Acabo de instalar la última versión de Apache Cordova (7.0.1) en Windows, el SDK de Android, agregué la plataforma de Android, y cuando trato de ejecutar el emulador de Android compila todo bien, pero luego muestra un:
No se puede leer la propiedad ''reemplazar'' de indefinido
Sin indicación ni nada más para rastrear el error.
En el foro marco Iónico encontré la siguiente respuesta que resolvió el problema:
Lo rastreó hasta la línea 202 del archivo /plataformas/android/cordova/lib/emulator.js:
var num = target.split (''(nivel de API'') 1 .replace ('')'', '''');
Reemplácelo con una búsqueda y extracción de expresiones regulares:
var num = target.match (/ / d + /) [0];
Pasó conmigo esta semana. Intenta rebajar la plataforma de Android a 6.0.0 hasta que el equipo iónico resuelva este problema.
Comandos:
cordova platform rm Android
cordova platform add [email protected]
Si prefieres no modificar emulator.js (respuesta de Adrian), pude solucionar este problema al iniciar manualmente un dispositivo virtual Android antes de ejecutar cordova emulate android
.
Información del dispositivo
- Windows 10
- Iónico 3
Mando
Ejecuté el siguiente comando en Windows 10 usando ionic y tuve el mismo problema:
iónico cordova emular android
Error
El siguiente error fue reportado en la terminal:
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
Fijar
El reemplazo de:
var num = target.split(''(API level '')1.replace('')'', '''');
con
var num = target.match(//d+/)[0]
como se señaló anteriormente trabajó.
El archivo en un proyecto iónico se encuentra en la carpeta de la aplicación iónica en el siguiente directorio: /platforms/android/cordova/lib/emulator.js
No se me ocurrió esta solución, solo quería proporcionar el comando y el error que obtuve para ayudar a otros.