Cordova包含一个未安装的插件,如何删除它?

时间:2014-12-02 20:23:35

标签: cordova cordova-plugins

编辑 - 这似乎是Fovea插件的一个问题。我没有意识到它包含来自旧插件的大量代码,这使我认为旧的插件仍然被引用。我不知道为什么它会抛出IllegalArgumentException,但它似乎并不是由引用的旧插件引起的。所以,无视......

我正在开发Phonegap / Cordova应用程序。以前,我从Phonegap开始,使用" SmartMobileSoftware"来自https://github.com/poiuytrez/AndroidInAppBilling的inapppurchase插件。我按照说明安装它,从git克隆它然后使用

phonegap local plugin add /path/to/src

后来,由于各种问题,我决定重新使用Cordova而不是Phonegap,并使用不同的购买插件。我用npm安装了最新的cordova,使用新的项目目录以通常的方式创建了一个新的Cordova应用程序,并安装了Fovea购买插件,如下所示:

cordova plugin add cc.fovea.cordova.purchase

然后我复制了我的代码(仅限html / css / js,没有配置文件或xml或任何东西),一切都表面上有效,新的购买插件加载并初始化。

这里是神秘的部分:新的Cordova应用程序以某种方式包含旧的计费插件。我注意到了这一点,因为当我的应用程序退出时,我在logcat中看到了这个IllegalArgumentException:

Service not registered: com.smartmobilesoftware.util....

果然,我检查了我的平台\ android \ res \ xml \ config.xml,它引用了旧的SmartMobileSoftware插件,所有旧的插件文件都在ant-build / classes中。但是,我不知道Cordova在哪里找到旧插件的参考。在我的新项目目录中没有引用它(平台/ android除外),并且在

中都没有提到它
cordova plugins ls
phonegap plugins ls

有没有猜到这里发生了什么?似乎Phonegap提到了Cordova关注的旧插件,但我不知道在哪里。科尔多瓦将如何包含一个未列入" cordova插件的插件"?

3 个答案:

答案 0 :(得分:0)

删除使用此语法

cordova plugin rm plugin_name_here

答案 1 :(得分:0)

问题是这两个插件都包含了一些相同的库,而我错误地将新插件误认为旧插件。

答案 2 :(得分:0)

问题是你在运行cordova plugin rm命令时必须使用 - save 标志。 cordova插件删除插件名称 - 保存

这个--save标志告诉编译器也将它从config.xml中删除,其中列出了所有插件。当你没有通过 - save 标志时,插件条目仍保留在config.xml中,因此当你运行:" cordova plugins ls"时,你的插件是仍然存在......并将您的旧插件版本构建到平台级别。

这应该在官方的cordova文档中更清楚地突出显示..