【发布时间】:2017-01-18 01:48:31
【问题描述】:
编辑 - 这似乎是 Fovea 插件的问题。我没有意识到它包含来自旧插件的大量代码,这让我认为旧插件仍在被引用。我不知道为什么会抛出 IllegalArgumentException 但它似乎不是由引用的旧插件引起的。所以,无视...
我正在开发一个 Phonegap/Cordova 应用程序。之前,我从Phonegap开始,使用https://github.com/poiuytrez/AndroidInAppBilling的“SmartMobileSoftware”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 在哪里找到对旧插件的任何引用。在我的新项目目录中没有提到它(除了platforms/android),也没有提到它
cordova plugins ls
phonegap plugins ls
大家猜到这里发生了什么吗?似乎Phonegap在Cordova关注的某个地方引用了旧插件,但我不知道在哪里。 Cordova 如何包含“cordova plugins ls”中未列出的插件?
【问题讨论】: