目的の結果を得るには、ionic platform add Android/iOs
を数回実行する必要があります。最初の実行後にプラグインが追加されることもありますが、通常はプラグインとプラットフォームディレクトリを一掃し、すべてのプラグインがAndroidフォルダに追加されるまで、プラットフォームサイクルを追加して数回再実行する必要があります。
他の誰かが同じ問題を経験しましたか、そうであれば-解決策は何ですか?もしあれば...
前もって感謝します
私自身も同様の問題をいくつか経験しました。 ionicプロジェクトをリセットしてみてください:
ionic state reset
これにより、platforms/
およびplugins/
フォルダーが削除され、package.json
に保存されている情報から復元されます。 ionic-cliプロジェクト に記載されている他のいくつかの便利なコマンドがあります。
私が最終的に使用した解決策は、プラットフォームを追加した後にすべてのプラグインをアンインストールして再インストールすることです。私は過去のCordovaアプリでこの問題に問題があったため、ビルドをできる限り一貫させるようにしているので、apkのビルド後にプラットフォームディレクトリをコミットして削除することはしません。私はこれをスクリプトで行いました:
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
これは一貫して私にとってはうまくいきましたが、私はこれを最新に保つことを心配する必要がないので、これらのコマンドをafter_platform_add/010_install_plugins.jsに移動し、以下を追加しました:
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);
});
});
これは、ルートJSONオブジェクトのpackage.jsonにこれらの行に沿った何かが存在することを前提としています。
"cordovaPlugins": [
"org.Apache.cordova.console",
"org.Apache.cordova.device",
"com.ionic.keyboard"
]
これは、after_plugin_add/010_register_plugin.jsが正しく機能している場合に自動的に発生します。
そうは言っても、これは一種のハックであり、Ionicはこれらすべてを適切に処理する必要があるので、うまくいけば、この問題をその側で調べて見つける時間を見つけることができますこの問題の根本的な問題。
ionic cordova prepare
を使用することをお勧めします
これにより、すべてのプラグインが1つのステップでインストールおよび構成されます。
私はこの問題の解決策を見つけたと思います。 ionic cliを使用する代わりに、プラットフォームを追加するためにSudo cordova platform add ...
。それは毎回働いています。