Essayer d'émuler Android app avec Cordova, mais obtenez le message d'erreur suivant:
Construit le ou les apk suivants: /Users/jnj/cordova/hello/platforms/Android/build/outputs/apk/Android-debug.apk Android_HOME =/Utilisateurs/jnj/Bibliothèque/Android/sdk Java_HOME =/Bibliothèque/Java /JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home
Erreur: impossible de lire la propriété 'semver' de null
Des solutions?
Cela est dû à l'utilisation d'un émulateur avec une version instable de l'API Developer Preview.
Vous avez probablement un appareil utilisant l'API 27 (Android 8.1).
Ouvrez votre AVD, retirez ce périphérique et exécutez à nouveau.
Il est également utile d’utiliser --target <emulator_name>
lors du lancement de l’émulateur si vous en avez plusieurs.
Pour obtenir une liste des noms disponibles à utiliser, appelez la commande emulate avec --list
Le puissant Chris a raison, c’est le problème et il l’a réglé en amont (merci Chris!). Cependant, juste pour ajouter à sa réponse, pour les personnes comme moi qui ne peuvent pas mettre à jour cordova-Android à inclure le correctif, le correctif est (pour 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 + ')';
Voici le pertinent patch .
Il s'agit d'un bogue de la méthode list_images de cordova-Android. Il se bloque lorsqu'il rencontre une version Android sur votre système qui ne figure pas dans sa liste: https://github.com/Apache/cordova- Android/pull/422
Vous pouvez appliquer le correctif manuellement dans platforms/Android/cordova/emulator.js
dans votre projet.
J’avais un problème similaire et j’ai exécuté adb devices
sur le terminal pour vérifier si mon périphérique était correctement connecté ou non et j’ai constaté que mon périphérique n’était pas correctement connecté. Je pense qu’il y avait un problème avec mon périphérique USB. câble et j’ai donc débranché le câble, puis rebranché et lancé la même commande adb devices
, puis il a montré que mon appareil était connecté. Mon problème a été résolu, j'espère que cela aidera quelqu'un d'autre.
Pour moi, sur un Mac, il fallait ce qui suit pour que le sdk s'exécute dans l'émulateur:
Ouvrez Android Studio (et ouvrez votre projet s'il ne s'ouvre pas au démarrage)
Sélectionnez "Outils -> Gestionnaire AVD" pour ouvrir l'outil de gestion de périphériques.
Faites un clic droit sur l'image concernée (ou créez-en une si nécessaire en premier)
Sélectionnez 'Cold Boot Now' et attendez que l'émulateur démarre
Dans un terminal, allez dans le dossier où votre platforms
et config.xml
. Où les commandes cordova
peuvent être exécutées
Répertoriez les périphériques disponibles avec adb devices
(Installez-le s'il est dit non disponible) pour obtenir la liste des périphériques en cours d'exécution et récupérez votre ID EMULATOR. Pour moi à cette occasion c'était emulator-5554
.
Exécutez la commande cordova run Android --target "emulator-5554"
en remplaçant emulator-5554
par votre propre référence.