19

我一直在尝试将插件升级到 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

– 雷米

4

5 回答 5

29

在“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

于 2013-09-16T14:45:23.210 回答
2

我的电话差距构建(2.6)突然遇到了同样的问题。之前工作的完全相同的代码,所以它必须是一个构建问题。

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

于 2013-08-16T14:44:03.017 回答
1

在 Android Studio 1.0.1(在 Mac OS 10.9.5 上运行)+ Cordova 4.2.0 上,我修复了一个类似的问题(“exec() call to unknown plugin”),如下所示:

碰巧标签的内容:

<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 上正常工作)。

于 2015-02-19T14:00:33.567 回答
1

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

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

于 2015-05-21T07:39:12.537 回答
0

您是否获得了成功的 deviceready 事件?过去,当我的应用程序由于代码中的其他原因而导致我的 deviceready 事件永远不会触发时,我曾经遇到过这个错误。在我的情况下,静默错误是由于我的 app.initialize() 代码块中的一些 javascript 语法错误造成的。

于 2013-08-14T10:12:29.023 回答