我一直在努力解决从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命令
答案 0 :(得分:22)
此问题的一个原因是在html文件中导入 cordova_plugins.js 。
检查是否属于您并将其删除。
答案 1 :(得分:16)
文件 cordova.js 会自动加载 cordova_plugins.js 。
因此,如果您无意中将以下代码两次放在您的页面上,另一种显而易见的方法就是结束此错误。
<script type="text/javascript" src="cordova.js"></script>
我在同样的错误上浪费了几个小时才意识到我已经在页面的顶部和底部添加了cordova.js。
答案 2 :(得分:-2)
您必须使用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