暂停app时Phonegap cordova 2.7.0错误

时间:2013-05-07 16:57:43

标签: cordova timeout

我使用phonegap工具“创建”创建了一个干净的cordova 2.7.0项目 (创建project_folder package_name project_name) 我已将应用程序部署到我的Nexus 4(androind 4.2.2)。 没有编写代码。

该应用程序已执行且没有错误,因为它已显示phonegap徽标并且“apache cordova设备已准备就绪”。 问题是,当我点击标准的android右键(显示最近运行的应用程序)时,我在日食LogCat中看到错误发生了错误:

05-07 18:29:54.957: D/webviewglue(24649): nativeDestroy view: 0x731f4738
05-07 18:30:10.163: D/DroidGap(24649): Paused the application!
05-07 18:30:10.163: D/CordovaWebView(24649): Handle the pause
05-07 18:30:10.453: W/IInputConnectionWrapper(24649): showStatusIcon on inactive InputConnection
05-07 18:30:10.743: D/DroidGap(24649): onDestroy()
05-07 18:30:10.743: D/CordovaWebView(24649): >>> loadUrl(javascript:try{cordova.require('cordova/channel').onDestroy.fire();}catch(e){console.log('exception firing destroy event from native');};)
05-07 18:30:10.743: D/PluginManager(24649): init()
05-07 18:30:10.753: D/CordovaWebView(24649): >>> loadUrlNow()
05-07 18:30:30.765: E/CordovaWebView(24649): CordovaWebView: TIMEOUT ERROR!
05-07 18:30:30.765: D/Cordova(24649): CordovaWebViewClient.onReceivedError: Error code=-6 Description=The connection to the server was unsuccessful. URL=javascript:try{cordova.require('cordova/channel').onDestroy.fire();}catch(e){console.log('exception firing destroy event from native');};
05-07 18:30:30.765: D/DroidGap(24649): onMessage(onReceivedError,{"errorCode":-6,"url":"javascript:try{cordova.require('cordova\/channel').onDestroy.fire();}catch(e){console.log('exception firing destroy event from native');};","description":"The connection to the server was unsuccessful."})

发生此错误后,我点击列表中的应用程序,会出现一个标题为“应用程序错误”的弹出窗口,其中包含此消息:

与服务器的连接失败。(javascript:try {cordova.require('cordova / channel')。onDestroy.fire();} catch(e){console.log('exception firing摧毁来自本地的事件');};)

此行为始终发生(有时需要使用最近的应用列表按钮两次暂停应用)。

有什么想法吗?

提前谢谢。

更新:正如Romain Braun使用2.4.0所建议的那样,错误不会发生。

7 个答案:

答案 0 :(得分:7)

此错误发布在Cordova 2.5发布之后

然而,没有人找到解决方案。

我建议将错误报告给phonegap团队,并在可能的情况下将您的Cordova版本降级为2.4。

答案 1 :(得分:2)

尝试在你的onCreate方法中增加加载超时值 扩展DroidGap的Java类:

super.setIntegerProperty("loadUrlTimeoutValue", 60000); 

答案 2 :(得分:1)

我遇到了同样的问题,当我使用2.4时也解决了这个问题,但我决定将其作为问题发布在他们的问题跟踪器上: https://issues.apache.org/jira/browse/CB-3749

显然对我来说这是因为我在我的清单中删除了几行,因为我的目标是android-10,但是我应该只针对android-17,因为phonegap本身适用于android-10,而不需要我的目标它

答案 3 :(得分:0)

在我意识到我使用了错误的Cordova.js文件之前,我遇到了这个恼人的问题。改变它,问题就消失了。我正在使用phonegap 2.7。

答案 4 :(得分:0)

我认为这个错误是非常广泛的并且是许多问题的症状。当我在我的webview客户端上覆盖onPageFinished和onPageStarted方法并忘记调用super.onPageFinished(view,url)时,我已经得到了它。

请注意,这些方法的“超时”已被“清除”:

https://github.com/apache/cordova-android/blob/master/framework/src/org/apache/cordova/CordovaWebViewClient.java#L299

答案 5 :(得分:0)

我在Cordova 2.5上遇到了同样的错误,并恢复了2.4。我最近尝试过2.9而且我不再收到错误。

答案 6 :(得分:0)

请不要在Activity的onPause()方法中使用webview.handlePause(false),而只在Activity的onDestroy()方法中使用webview.handleDestroy()。

当用户重新打开活动时,我们就会在我们的应用中以这种方式修复它。

科尔多瓦-2.5.jar