将Worklight应用程序部署到Android模拟器上会出错

时间:2012-08-14 07:40:21

标签: android android-emulator dojo cordova ibm-mobilefirst

我正在尝试使用Worklight将应用程序部署到Android。

我之前发现了类似的错误,但没有给出具体答案。当我在Android模拟器上启动应用程序时会触发错误,就是这样:

08-13 08:22:26.262:E / Web控制台(347):TypeError:表达式'cordova.exec'undefined的结果不是函数。在file:///data/data/com.Test/files/www/default/wlclient/js/wlgap.android.js:697

现在,我相信这个js文件是在运行时注入的,因此我不确定我编辑它的方式和位置。

稍后抛出的错误是:

08-13 08:22:30.982:E / Web Console(347):TypeError:表达式'h.body()'未定义的结果不是对象。在file:///data/data/com.Test/files/www/default/dojo/mobile-ui-layer.js:257

问题在于Dojo和/或Cordova-PhoneGap。问题是,我如何绕过它并使我的应用程序正常工作?

我认为wlCommonInit可能存在问题,因为在调用它之前它不能有任何东西,但是,我在解决它之前解析Dojo。如果我在它到达之前没有解析Dojo,我会收到大量的Dojo解析错误。

真正感谢任何帮助。

谢谢!

2 个答案:

答案 0 :(得分:1)

你可以在android原生项目中看到wlgap.android.js。 您应该将您的Dojo代码放在wlCommonInit(或wlEnvInit)中,并且您不需要检查dom或设备是否准备就绪(Worklight运行的进程在触发wlCommonInit之前对其进行测试)。

答案 1 :(得分:0)

确保所有Dojo解析都在wlCommonInit中完成 - 这意味着将加载时的解析设置为false并在wlCommonInit中以编程方式执行。