在Phonegap应用程序中出现错误:未捕获的模块cordova/plugin_list已定义。

24

我一直在尝试解决从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 命令。


嗨,我建议你不要升级,从cli创建一个新的cordova项目,也用cli安装你的插件,并将旧项目的www复制到新项目中。我认为这会避免许多错误发生。问候。 - JSG33kC0d3
3个回答

25

这个问题的一个原因是在你的html文件中导入了cordova_plugins.js

检查一下是否是这种情况并将其删除。


谢谢grytrn,这解决了我的问题...我本来以为我需要调用cordova_plugins.js,但现在看来我的应用程序没有它也能正常加载,而且我不再收到错误信息了。 - Gthoma2
3
我的HTML文件中没有cordova_plugins.js,但我的项目仍然存在同样的问题。@grytrn,对此有什么线索吗? - Lohith Korupolu
@LohithKrishna,我在尝试在远程站点中使用cordova插件时遇到了这个异常。请参见我的答案。我不确定您是否有相同的情况。 https://dev59.com/qGEh5IYBdhLWcg3w0WRP#26551455 - sorin.silaghi
@LohithKrishna 没有细节我无法提供帮助。 - grytrn
我的许多麻烦都源于此。非常好的答案,谢谢。 - GRY

18

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

因此,另一种显而易见的导致出现此错误的方式是如果您不小心在页面上两次意外地放置了以下代码。

<script type="text/javascript" src="cordova.js"></script> 
我曾因同一个错误浪费了好几个小时,最后才意识到我在页面的顶部和底部都添加了cordova.js。

我曾因同一个错误浪费了好几个小时,最后才意识到我在页面的顶部和底部都添加了cordova.js。


-4

您必须使用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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接