在cordova添加android和iOs平台之后,并不总是添加插件

在cordova添加android和iOs平台之后,并不总是添加插件,android,ios,cordova,phonegap-plugins,ionic,Android,Ios,Cordova,Phonegap Plugins,Ionic,我需要运行ionic platform add android/iOs几次才能得到想要的结果。 有时候插件会在第一次运行后添加,但通常我必须清除插件和平台目录,并重新运行添加平台循环几次,直到所有插件都添加到android文件夹 是否有其他人遇到过同样的问题?如果是,解决方法是什么? 如果有的话 提前感谢我最终使用的解决方案是在添加平台后卸载并重新安装所有插件。因为我在过去的Cordova应用程序中遇到过这个问题,所以我尝试使构建尽可能一致,所以我不会在构建apk后提交平台目录并删除它。我用一个

我需要运行
ionic platform add android/iOs
几次才能得到想要的结果。 有时候插件会在第一次运行后添加,但通常我必须清除插件和平台目录,并重新运行添加平台循环几次,直到所有插件都添加到android文件夹

是否有其他人遇到过同样的问题?如果是,解决方法是什么? 如果有的话


提前感谢

我最终使用的解决方案是在添加平台后卸载并重新安装所有插件。因为我在过去的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 cli来添加平台,而是sudo cordova平台添加…。它每次都在工作

我自己也经历过类似的问题。尝试重置您的ionic项目:

ionic state reset

这将删除
platforms/
plugins/
文件夹,并从
package.json中存储的信息中恢复它们。上还记录了一些其他有用的命令。

现在最好使用
ionic cordova prepare


这只需一步就可以安装和配置所有插件

我仍然有同样的问题。。。有什么想法吗?你正在开发哪些操作系统?这好像是写权限问题。这是osx。如果这是一个写作许可问题,我现在就不能这么做,难道不是真正需要的一切吗?这将文件从项目插件文件夹复制到目标平台。
cordova build
是一个快捷方式:
cordova prepare
cordova compile
,因此它应该可以完成您需要的所有操作。问题是,它是否真的起作用,有点碰运气。我真的需要一些真正可复制的东西(我们对客户进行连续部署)。这个方法似乎很管用,但对我来说并没有解决问题。问题仍然存在。遗憾的是,这不再受支持:
离子状态已从CLI 3.0中删除。