2017-09-10 7 views
2

J'ai téléchargé et ajouté "API Nexus 5X 26" à "Votre Virtual Devices" dans Android studio, de sorte que Cordova a au moins 1 cible possible d'exécuter dans.Pourquoi ai-je cette erreur lorsque j'essaie d'exécuter mon application Cordova sous Android?

Cependant, quand je lance la commande

cordova run android 

le terminal (après quelques autres lignes) répond:

BUILD SUCCESSFUL 

Total time: 1.305 secs 
Built the following apk(s): 
    /Users/karel/Cordova Projects/demo/platforms/android/build/outputs/apk/android-debug.apk 
ANDROID_HOME=/Users/karel/Library/Android/sdk 
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home 
No target specified and no devices found, deploying to emulator 
Error: Cannot read property 'replace' of undefined 

l'émulateur fonctionne très bien quand je le lance à partir d'une application dans Android studio mais pas lorsque vous utilisez la commande run cordova - qui fonctionne pour d'autres plates-formes .

Si vous pouvez m'aider, ce serait très apprécié!

Répondre

1

Essayez de cibler API 25 au lieu de 26.

problème et sa solution sont signalés ici: https://forum.ionicframework.com/t/error-cannot-read-property-replace-of-undefined-android/93297/31

Dans le fichier /platforms/android/cordova/lib/emulator.js ligne 202:

var num = target.split('(API level ')[1].replace(')', ''); 

Vous devez le remplacer par une recherche regex et extraction:

var num = target.match(/\d+/)[0]; 

parce que la cible est Android API 26 et tente de l'analyser avec ceci:

var num = target.split('(API level ')[1].replace(')', '')