160

应用程序在启动时死机(连接到服务器不成功)

我有一个使用PhoneGap BUILD 编写的Android 应用程序。该应用程序之前运行良好,但现在似乎在改进我的应用程序后出现此错误(仅限一些 UI 更改)

1)当我启动应用程序时,我(通常)得到:

应用程序错误 - 与服务器的连接不成功。(文件:///android_asset/www/index.html)

对不起,如果这是任何问题的重复。我在这里看到了一些类似的问题,但我找不到完美的答案或解决方案。就我而言,它工作正常,直到我最后一次更改。

4

17 回答 17

188

在您的 config.xml 文件中添加以下行:

<preference name="loadUrlTimeoutValue" value="700000" />
于 2015-07-13T07:42:03.017 回答
73

正如您所说,同一主题有许多重复的问题。无论如何解释你的情况。

可以通过添加超时来调用 index.html 来解决问题

即你需要super.setIntegerProperty("loadUrlTimeoutValue", 70000);在你的activity.java文件中添加(在src/com/yourProj/--/youractivity.java里面)这行上面: super.loadUrl("file:///android_asset/www/index.html");

解释:

这可能是由于以下原因而发生的

核心原因:问题可能是模拟器速度太慢导致网络太慢,及时完成通讯。

这可能是由于:

  1. 您的代码/数据/图像太大(我猜在您的情况下您正在使用一些图像,正如您所说您进行了一些 UI 修改,可能是图像的大小很大)
  2. 您的脚本可能有一个无限或很长的循环,因此加载时间过长。
  3. 您将使用过多的脚本(jQuery、iscroll 等。更多的插件或脚本)
于 2012-09-07T17:43:28.367 回答
24

这是工作解决方案

创建一个新页面 main.html

例子:

<!doctype html>
<html>
  <head>
   <title>tittle</title>
   <script>
     window.location='./index.html';
   </script>
  </head>
  <body>
  </body>
</html>

在 mainactivity.java 中更改以下内容

super.loadUrl("file:///android_asset/www/index.html");

super.loadUrl("file:///android_asset/www/main.html");

现在构建您的应用程序,它适用于任何慢速连接

参考

注意:这是我在 2013 年找到的解决方法。

于 2013-03-26T04:10:53.253 回答
10

请删除远程链接的 jQuery 文件,例如: https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js

相反,下载此文件并从本地 js 文件夹加载它,生成 URI:

js/jquery.min.js

于 2013-03-12T11:03:32.557 回答
6

删除 index.html 中的外部脚本

改变这个:

<script src="http://code.highcharts.com/highcharts-more.js"></script>

<script src="project_folder/highcharts-more.js"></script>
于 2016-03-16T14:04:12.697 回答
5

我遇到了类似的问题,根据上述建议,我首先添加了“super.setIntegerProperty("loadUrlTimeoutValue", 70000);" 但这并没有帮助。所以我尝试了 Project -> Clean,它成功了,我现在可以启动应用程序了!

阿维纳什...

于 2014-04-11T10:43:32.410 回答
5

试试这个,

1.将你的index.html重命名为“main.html”</p>

2.新建一个“index.html”,放入以下内容:

<!doctype html>
<html>
  <head>
   <title>tittle</title>
   <script>
     window.location='./main.html';
   </script>
  <body>
  </body>
</html>

3.重建您的应用程序!没有更多的错误!

于 2015-09-25T06:04:17.267 回答
5

在离子应用程序上修复此问题,只需添加

<preference name="loadUrlTimeoutValue" value="700000" />

在此行之后立即添加到您的 config.xml 文件

<platform name="android">
于 2019-03-21T06:49:16.790 回答
4

我的项目也有同样的情况。

我尝试了“ super.setIntegerProperty("loadUrlTimeoutValue", 70000); ”但无济于事。

我确保所有文件都正确链接 [CSS、JS 文件等],使用 w3c 验证器 [ http://validator.w3.org/#validate_by_upload ] 验证了 HTML,并清理了项目 [Project -> Clean]

它现在加载并执行而没有相同的错误。

希望这可以帮助

于 2013-01-23T10:06:24.953 回答
4

延长加载超时限制并不能解决导致错误的问题,它只会避免系统显示消息,但无论如何都会影响性能。

实际原因:您可能将文件或图像链接到远程位置,而这些资源加载时间过长。(这可能是最常见的错误)

最终解决方案:将所有需要的脚本、图片和css移动到一些本地文件夹中,并在本地加载...

性能将提高,错误将得到有效解决。

于 2017-01-18T08:39:03.180 回答
4

检查你index.html的文件。如果您使用外部资源,则在运行应用程序时不可用,那么您可能会收到此错误。

就我而言,我忘记删除调试器脚本(weinre)上的链接。

<script src="http://192.168.0.102:8080/target/target-script-min.js#anonymous"></script>

所以应用程序在模拟器上工作,因为http://192.168.0.102:8080/它在我的本地主机上并且可用于模拟器。

但是当我在手机上设置应用程序时,我遇到了同样的错误,因为 192.168.0.102 在移动网络上不可用。

于 2017-02-24T22:14:12.897 回答
2

就我而言,问题是由于我的 WiFi 中的互联网连接丢失。

于 2018-04-03T12:10:13.207 回答
1

在我的情况下,我使用的是 ionic,我只是关闭了对话框,转到模拟器中的应用程序,然后从那里运行我的应用程序。这行得通。我从这里得到了这个想法,因为这只是一个超时问题。

于 2014-05-17T03:42:24.207 回答
1

如果您使用的是视觉工作室。更改 config.xml 后有时你需要这个

干净的构建解决方案重建您的应用程序

它对我有用。

于 2017-04-03T06:52:51.750 回答
1

我面临着同样的问题。我注意到在我的索引中我同时具有“设备就绪”和“document.ready”功能,因此删除其中一个解决了我的问题:)

于 2018-10-30T14:19:12.047 回答
0

这是一个相当小众的情况,但我想我会把它贴在这里,以防其他人节省我花在兜圈子上的时间。

在尝试了 cordova-android@10.0.1 后,我恢复到了 cordova-android@9.1,并在尝试以开发模式运行我的应用程序时开始出现此错误。

我忘记的是,当我升级到 10.0.1 时,我不得不删除白名单插件,因为它现在是 cordova-android 的一部分。

恢复 cordova-plugin-whitelist 让我的一切都恢复正常了!

于 2021-08-06T11:59:33.183 回答
-8

可能发生此错误的另一个原因是:没有index.htmlin .../YourApp/www/

我只是按照ionic guide,其中一个步骤是:

$ rm www/index.html

在 iOS 上,这没有问题,因为在构建过程中,编译器会采用一些默认的 HTML。但是,在为 android 构建时,没有index.html使用示例。我花了一些时间才知道(“为什么它可以在 iOS 上运行,但不能在 android 上运行......?)

简单的解决方案:创建一个 index.html,将其保存在 下.../YourApp/www,重建...等等!

于 2014-06-05T15:03:34.393 回答