Javascript 类型错误:';未定义';不是具有Sencha Touch和cordova 3.0的函数(评估';cordova.exec';)

Javascript 类型错误:';未定义';不是具有Sencha Touch和cordova 3.0的函数(评估';cordova.exec';),javascript,ios,cordova,sencha-touch,Javascript,Ios,Cordova,Sencha Touch,我正在使用ApacheCordova3.0和SenchaTouch2.3进行POC项目。有一段时间一切正常,但现在每当我尝试调用Cordova中调用自定义插件的代码时,都会因为标题中的错误而失败 我知道onDeviceReady事件正在被触发,因为我监听它并在收到它时弹出一个警报弹出窗口,并且每次都会触发警报 不确定还要检查什么或提供什么其他详细信息?此错误说明应用程序中的自定义插件配置不正确 1) 您是否在页面中包含自定义插件的js文件?在cordova.js之后和使用自定义插件功能之前添加.

我正在使用ApacheCordova3.0和SenchaTouch2.3进行POC项目。有一段时间一切正常,但现在每当我尝试调用Cordova中调用自定义插件的代码时,都会因为标题中的错误而失败

我知道onDeviceReady事件正在被触发,因为我监听它并在收到它时弹出一个警报弹出窗口,并且每次都会触发警报


不确定还要检查什么或提供什么其他详细信息?

此错误说明应用程序中的自定义插件配置不正确

1) 您是否在页面中包含自定义插件的js文件?在cordova.js之后和使用自定义插件功能之前添加.js文件


2) 如何将自定义插件添加到项目中?始终建议使用CLI工具添加/删除任何插件。

我也面临同样的问题。看起来Adobe在从2.x迁移到3.x的过程中搞得一团糟

我在插件中所做的是检查cordova.exec,如果没有定义,则需要它。例如,在插件的顶级源代码中添加以下内容:

 var cordova = require('cordova');
 cordova.exec = cordova.exec || require('cordova/exec');
这应该能奏效

致以最良好的祝愿


Eric发现了问题-我在index.html中显式加载cordova.js。但Sencha touch也以不明显的方式显式加载cordova.js(在app.json中自动指定)。一旦我删除了我自己的cordova.js插件,它就可以正常加载。

如果一个插件配置不正确,cordova本身是否无法加载因为这告诉我cordova本身没有加载。无论如何,我确实在正确的位置将插件的js文件添加到了页面中,并且它在项目中(确认它在config.xml中,并复制到了正确的位置)。。此外,您还应该查看是否使用了正确版本的插件代码。。cordova 2.*和3.*插件之间有一些主要区别。我们专门为3.0开发了插件,我们只支持3.0,所以我认为不是这样。我将cordova对象转储到控制台。它已定义,但未显示正在定义的exec函数原型。奇怪。你通过node.js安装了cordova和插件?谢谢。我的问题实际上是,Sencha在我试图装载Cordova时,正在将其装载到盖子下,这导致了问题。