PhoneGap 3插件:exec()调用未知插件“......”

时间:2013-07-31 15:16:19

标签: android cordova phonegap-plugins

我一直在尝试将插件升级到v3,并且我已经设法通过插件加载问题,并且我设法将插件暴露给客户端环境(更改exec的工作方式,等)。

但是当我用

观看adb logcat时

adb logcat | grep -v nativeGetEnabledTags | grep -i web

我收到此错误:

D/PluginManager(11189): exec() call to unknown plugin: WebSocket

我无法弄清楚出了什么问题,而且我不确定为什么Android版本无法看到该插件。

我已将所有代码推送到github仓库,所以如果有人能够复制并帮助我,我会非常欢迎!我也试着写下我的转换经验,并在我点击时记录陷阱(自述文件中有一些,虽然它不完整):

这是回购:https://github.com/remy/phonegap_test

- 雷米

5 个答案:

答案 0 :(得分:28)

在“res / xml / config.xml”中定义你的插件

在文件中找到这些行

<feature name="App">
        <param name="android-package" value="org.apache.cordova.App" />
</feature>

并在以下后附加这些:

<feature name="MyPluginName">
        <param name="android-package" value="com.phonegap.plugins.plugin.class" />
</feature>

用实际名称替换虚拟名称(MyPluginName,plugins.plugin.class等)。当我收到此错误时,这对我有用:

  

exec()调用未知插件:MyPluginName

答案 1 :(得分:2)

我的手机间隙构建(2.6)突然出现同样的问题。同样精确的代码先前工作,因此它必须是构建问题。

您是否尝试打开apk并查看是否包含config.xml(已定义插件的位置)。

答案 2 :(得分:1)

在Android Studio 1.0.1(在Mac OS 10.9.5上运行)+ Cordova 4.2.0上,我修复了类似的问题(对未知插件的“exec()调用”),如下所示:

发生了标签的内容:

<feature name="MyPluginName">
<param name="android-package" value="com.phonegap.plugins.plugin.class" />
</feature>

YourCordovaProjectName / config.xml YourCordovaProjectName / platforms / android / res / xml / config.xml

下没有重复

我必须更改 YourCordovaProjectName / platforms / android / res / xml / 下的文件 config.xml 并添加标记:

    <feature name="MyPluginName">
    <param name="android-package" value="com.phonegap.plugins.plugin.class" />
    </feature>

然后它奏效了。

我还要补充一点,我遇到了与IOS相同的问题,我不得不手动输入:

<feature name="MyPluginName">
<param name="ios-package" value="com.phonegap.plugins.plugin.class" />
</feature>

YourCordovaProjectName / platforms / ios / YourCordovaProjectName

文件夹下的文件config.xml中

希望以后能够解决这个问题,并且 YourCordovaProjectName / config.xml 的内容将正确地反映在每个特定平台下的config.xml文件中(它曾经正常工作) Android几个月前。)

答案 3 :(得分:1)

在ProjectFolder / platforms / android / res / xml / config.xml下的android中添加插件定义,更新ProjectFolder / plugins / android.json

&#34; cordova build“命令将读取此android.json文件并使用此处提到的所有插件自动更新ProjectFolder / platforms / android / res / xml / config.xml。

答案 4 :(得分:0)

您是否获得了成功的设备准备活动?我的应用程序在我的代码中由于其他原因而无声地失败导致我的deviceready事件永远不会触发,我在过去遇到了这个错误。在我的情况下,无声错误是由于我的app.initialize()代码块中的一些javascript语法错误。