J'ai besoin d'exécuter ionic platform add Android/iOs
plusieurs fois pour obtenir le résultat souhaité . Parfois, des plugins sont ajoutés après la première exécution, mais je dois généralement effacer les plugins et les répertoires de la plate-forme, puis réexécuter l'ajout du cycle de plate-forme jusqu'à ce que tous les plugins soient ajouté au dossier Android.
Quelqu'un d'autre a-t-il rencontré le même problème et si oui - quelle est la résolution? Le cas échéant ...
merci d'avance
J'ai moi-même rencontré des problèmes similaires. Essayez de réinitialiser votre projet ionique:
ionic state reset
Cela supprime les dossiers platforms/
et plugins/
et les restaure à partir des informations stockées dans votre package.json
. Il existe quelques autres commandes utiles documentées sur le projet ionic-cli .
La solution que j'ai finalement utilisée consiste à désinstaller et à réinstaller tous les plugins après avoir ajouté la plate-forme. Depuis que j'ai eu des problèmes avec ce problème dans les anciennes applications Cordova, j'essaie de rendre les versions aussi cohérentes que possible, aussi je n'engage pas le répertoire des plates-formes et ne le supprime pas après avoir créé l'apk. Je l'ai fait avec un script:
ionic platform add Android
ionic plugin remove org.Apache.cordova.device
ionic plugin remove org.Apache.cordova.console
ionic plugin remove com.ionic.keyboard
ionic plugin add org.Apache.cordova.device
ionic plugin add org.Apache.cordova.console
ionic plugin add com.ionic.keyboard
platforms/Android/cordova/build --release
rm -rf platforms
Cela a toujours fonctionné pour moi, mais comme je préfère ne pas avoir à m'inquiéter de l'actualité, j'ai déplacé ces commandes dans: after_platform_add/010_install_plugins.js, avec les ajouts suivants:
packageJSON.cordovaPlugins = packageJSON.cordovaPlugins || [];
packageJSON.cordovaPlugins.forEach(function(plugin) {
exec('cordova plugin remove ' + plugin, function(error, stdout, stderr) {
sys.puts(stdout);
});
});
packageJSON.cordovaPlugins.forEach(function(plugin) {
exec('cordova plugin add ' + plugin, function(error, stdout, stderr) {
sys.puts(stdout);
});
});
Cela suppose qu'il existe quelque chose de similaire dans le package.json dans l'objet JSON racine:
"cordovaPlugins": [
"org.Apache.cordova.console",
"org.Apache.cordova.device",
"com.ionic.keyboard"
]
Ce qui devrait se produire automatiquement si after_plugin_add/010_register_plugin.js fonctionne correctement.
Cela étant dit, j’ai l’impression que c’est un peu un hacky et qu’Ionic devrait gérer tout cela correctement. J’espère donc que je trouverai le temps d’examiner la question de ce côté-ci et de trouver le fond du problème.
Il vaut mieux maintenant utiliser ionic cordova prepare
Cela installe et configure tous les plugins en une seule étape
Je pense avoir trouvé une solution à ce problème. Au lieu d'utiliser ionic cli pour l'ajout d'une plateforme, j'utilise Sudo cordova platform add ...
. Ça marche à chaque fois.