【问题标题】:what is the correct way to manually add Cordova plugin to Cordova project将 Cordova 插件手动添加到 Cordova 项目的正确方法是什么
【发布时间】:2014-11-24 07:06:40
【问题描述】:

我正在使用 Android Studio 开发 Cordova 项目。我想将 Cordova 设备插件添加到我的项目中。据我了解,Cordova 插件由device.jsDevice.java 组成,我在插件文件夹中找到了它们。我将Device.java 复制到CordovaLib/src/org/apache/cordova/device/ 文件夹和device.js 复制到assets/www/plugins/org.apache.cordova.device/www 文件夹。我还包含在 index.html cordova_plugins.js 文件中,该文件由 Cordova 自动创建。它有以下内容:

cordova.define('cordova/plugin_list', function(require, exports, module) {
module.exports = [
    {
        "file": "plugins/org.apache.cordova.device/www/device.js",
        "id": "org.apache.cordova.device.device",
        "clobbers": [
            "device"
        ]
    }
];
module.exports.metadata = 
// TOP OF METADATA
{
    "org.apache.cordova.device": "0.2.12"
}
// BOTTOM OF METADATA
});

现在,当我成功构建我的应用程序并运行它时,我收到 Error initializing Cordova: Class not found 错误。我做错了什么?

【问题讨论】:

    标签: javascript android cordova


    【解决方案1】:

    如果您直接在platform/android文件夹中进行更改,请不要使用CLI添加插件,您可能会丢失您的代码(当您使用cli添加插件时,它只是在平台中真正添加时你运行cordova prepare android,它将用根 www 文件夹中的代码覆盖平台/android/assets/www 中的代码,这可能不是你想要的)。

    将插件直接添加到平台的推荐方法是to use the plugman tool

    如果您真的想手动完成所有操作,那么您需要查看的文件是 plugin.xml。在此文件中,您将找到要修改的文件,例如 config.xml、AndroidManifest.xml 或 cordova_plugins.js。

    您不应该从 index.xml 加载 cordova_plugins.js,它会使用 require 从 cordova.js(以及插件中的 javascrips)自动加载。

    【讨论】:

    • 谢谢,您是否手动将插件添加到项目中?我会在今天晚些时候查看plugin.xml,看看它能告诉我什么。
    • 不,我更喜欢使用 CLI 添加插件。
    • 然后我假设您在不使用 Android Studio 的情况下也使用 cordova build android 构建应用程序?
    • 是的。或者有时当我必须调试 java 时,我也会使用 Eclipse(请注意 cli 会覆盖平台中所做的任何更改)。但是如果你使用plugman工具,它会和手动一样:直接安装在平台上,没有被覆盖,只需在android studio中刷新就可以带来更新。
    • 是的(必须输入至少 15 个字符才能回复...)
    【解决方案2】:

    您应该使用cordova cli(命令行界面)方法来添加插件,假设您使用的是cordova/phonegap版本> 3。据我所知,还需要核心插件(由cordova团队维护)自 3.2 或 3.4 版以来添加/删除。

    无论如何,您应该从命令提示符(您的顶级 www 文件夹所在的位置)调用:cordova plugin add org.apache.cordova.device

    有关更多详细信息,请参阅cordova 文档here(滚动到底部)。

    请注意,我从未使用过 Android Studio,只使用过 Eclipse,但这些应该与 IDE 无关。

    【讨论】:

    • 谢谢,我没有使用cordova项目,我只使用他们的库(CordovaLib java类和cordova.js),我需要手动将插件添加到我的项目中
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-04
    • 2020-04-30
    • 2018-04-10
    • 2020-09-30
    • 2014-08-24
    相关资源
    最近更新 更多