首页 文章

Phonegap应用程序出错:未定义模块cordova / plugin_list已定义

提问于
浏览
22

我一直试图解决从Phonegap 2更新到Phonegap 3.3的许多问题,但我似乎无法解决这个问题 .

我从一些用户那里读到,未捕获的模块异常会导致导入的插件停止运行 . 我有一些奇怪的错误与本地通知插件,所以我想解决这个问题,看看它是否有帮助 .

这是Eclipse中logcat中出现的错误:

[INFO:CONSOLE(79)] "Uncaught module cordova/plugin_list already defined", source: file:///android_asset/www/cordova.js (79)

我知道这是一个奇怪的问题,因为Phonegap 3的性质(插件已被重做) . 我认为问题在于导入cordova_plugins.js脚本,因为该脚本的顶行如下:

cordova.define('cordova/plugin_list', function(require, exports, module) {
module.exports = [
{
    "file": "plugins/org.apache.cordova.file/www/DirectoryEntry.js",
    "id": "org.apache.cordova.file.DirectoryEntry",
    "clobbers": [
        "window.DirectoryEntry"
    ]
}, ...

这是唯一可以找到错误中引用的cordova / plugin_list存在的地方 .

但是,我不确定解决此问题的正确方法 . 我没有使用plugman来导入我的插件,而是使用Phonegap 3.3 API中概述的CLI命令

3 回答

  • 16

    导致此问题的一个原因是导入html文件中的 cordova_plugins.js .

    检查是否属于您的情况并将其删除 .

  • -2

    文件 cordova.js 自动加载 cordova_plugins.js .

    因此,如果您无意中将以下代码两次放在页面上,另一种显而易见的方法就是结束此错误 .

    <script type="text/javascript" src="cordova.js"></script>
    

    我在同样的错误上丢失了几个小时才意识到我在页面的顶部和底部都添加了cordova.js .

  • 22

    您必须使用Phonegap命令行界面创建和部署任何phonegap项目/应用程序

    要在命令行上创建任何项目,请执行以下命令:

    $ phonegap create <path> <package_name> <project_name>
    

    $ phonegap create hello com.example.hello HelloWorld
    

    要向项目添加任何平台:

    cd <path_to_project>
    $ phonegap build <platform>
    

    cd hello
    $ phonegap build ios
    $ phonegap build android
    

    要向项目添加任何插件功能:

    cd <path_to_project>
    $ phonegap local plugin add <path_to_plugin>
    

    cd hello
    $ phonegap local plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-device.git
    

相关问题