10

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

该应用程序已正确执行,因为它显示了 phonegap 徽标和“apache cordova device is ready”。问题是,当我点击标准的 android 右键(显示最近运行的应用程序)时,我在 eclipse 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('从本机触发破坏事件的异常') ;};) "

这种行为总是发生(有时需要通过使用最近的应用程序列表按钮两次来暂停应用程序)。

有任何想法吗?

先感谢您。

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

4

7 回答 7

7

这个 bug 在 Cordova 2.5 发布后出现

然而没有人找到解决办法。

我建议向 phonegap 团队报告这个错误,如果可能的话,将你的 Cordova 版本降级到 2.4。

于 2013-05-07T17:56:12.043 回答
2

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

super.setIntegerProperty("loadUrlTimeoutValue", 60000); 
于 2013-07-15T06:57:46.100 回答
1

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

显然对我来说发生这种情况是因为我在清单中删除了几行,因为我的目标是 android-10,但我应该只针对 android-17,因为 phonegap 本身适用于 android-10,而我不必定位它。

于 2013-06-10T17:31:18.637 回答
0

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

当用户重新打开活动时会发生这种情况,我们在我们的应用程序中以这种方式修复了它。

Cordova-2.5.jar

于 2013-11-11T06:53:02.633 回答
0

我在使用 Cordova 2.5 时遇到了同样的错误,然后又恢复到 2.4。我最近尝试了 2.9,但我不再收到错误消息。

于 2013-07-04T09:57:33.963 回答
0

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

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

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

于 2013-06-04T16:01:55.933 回答
0

我遇到了这个烦人的问题,直到我意识到我使用了错误的 Cordova.js 文件。改了,问题就解决了。我使用phonegap 2.7。

于 2013-05-16T00:12:56.677 回答