Je viens d'installer la dernière version d'Apache Cordova (7.0.1) sur Windows, le SDK Android, ajouté la plate-forme Android Android, et lorsque vous essayez d'exécuter le Android il compile tout ok mais affiche ensuite un:
Impossible de lire la propriété "remplacer" de non défini
Sans indication ni rien d'autre pour retracer l'erreur.
Dans le forum du cadre ionique a trouvé la réponse suivante qui a résolu le problème:
Je l'ai retrouvé dans le fichier /platforms/Android/cordova/lib/emulator.js ligne 202:
var num = target.split ('(niveau API') 1 . replace (')', '');
Remplacez-le par une recherche et une extraction d'expression régulière:
var num = target.match (/\d + /) [0];
C'est arrivé avec moi cette semaine. Essayez de rétrograder Android vers 6.0.0 jusqu'à ionic résout ce problème).
Commandes:
cordova platform rm Android
cordova platform add [email protected]
Si vous préférez ne pas modifier emulator.js (réponse d'Adrian), j'ai pu contourner ce problème en démarrant manuellement un appareil virtuel Android avant d'exécuter cordova emulate Android
.
Informations sur l'appareil
Commande
J'ai exécuté la commande suivante sur Windows 10 en utilisant ionic et j'ai eu le même problème:
cordova ionique émule Android
Erreur
L'erreur suivante a été signalée dans le 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
Fix
Le remplacement de:
var num = target.split('(API level ')1.replace(')', '');
avec
var num = target.match(/\d+/)[0]
comme indiqué ci-dessus a fonctionné.
Le fichier dans un projet ionic se trouve dans votre dossier d'application ionic dans le répertoire suivant: /platforms/Android/cordova/lib/emulator.js
Je n'ai pas trouvé ce correctif, je voulais juste fournir la commande et l'erreur que j'ai reçues pour aider les autres.