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

152 android cordova

App Dies On Startup(与服务器的连接失败)

我有一个Android应用程序,我正在使用PhoneGap BUILD编写.该应用程序之前工作正常,但现在看来我在改进我的应用程序后出现此错误(仅一些UI更改)

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

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

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

Sou*_*ene 180

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

<preference name="loadUrlTimeoutValue" value="700000" />
Run Code Online (Sandbox Code Playgroud)

  • 对于任何想知道的人:这是在抛出错误之前加载页面时等待的时间量(以毫秒为单位):https://cordova.apache.org/docs/en/latest/config_ref/index.html (13认同)
  • `<preference name ="loadUrlTimeoutValue"value ="120000"/>`与700000相比更好,我的意思是如果你的应用程序在两分钟内没有出现,那么就有问题了(你应该用另一个来修复它)解).你真的不想等待大约11分钟看看应用程序是否会出现!(这就是为什么我们首先确实有超时概念,对吧?:-))根据文档,默认值为20000 (20秒) (13认同)
  • 你也应该描述一下 (6认同)

Anh*_*arp 71

正如你所说,关于同一主题有许多重复的问题.如何解释你的情况.

可以通过添加超时来调用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等等..更多的插件或脚本)

  • -1"问题可能是由于模拟器的速度所以网络速度太慢" - 令人难以置信,因为**没有涉及网络!**该网址是本地Android资产. (39认同)
  • 在我的情况下发生的事情是我仍然有一个脚本标签指向Weinre的本地实例.Weinre没有跑步.因此 - 超时. (7认同)

Rob*_*uel 24

这是工作解决方案

创建一个新页面main.html

例:

<!doctype html>
<html>
  <head>
   <title>tittle</title>
   <script>
     window.location='./index.html';
   </script>
  </head>
  <body>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

在mainactivity.java中更改以下内容

super.loadUrl("file:///android_asset/www/index.html");
Run Code Online (Sandbox Code Playgroud)

super.loadUrl("file:///android_asset/www/main.html");
Run Code Online (Sandbox Code Playgroud)

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

推荐.

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

  • 效果一样!但您的实际页面将更改为main.html.但我希望我的实际页面是index.html.BTW,我认为你的评论是错误的.你需要将`index.html`重命名为`main.html`并创建一个`index.html`页面,然后添加`window.location ='./ main.html'`.在`index.html`页面.这应该工作. (4认同)
  • 实际上,您只需重命名index.html并使用window.location ='./ index.html'创建main.html.无需从MainActivity.java更改super.loadUrl (3认同)

sha*_*nal 9

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

而是,下载此文件并从本地js文件夹加载它,使URI成为:

js/jquery.min.js


Rau*_*ral 6

删除index.html中的外部脚本

改变这个:

<script src="http://code.highcharts.com/highcharts-more.js"></script>
Run Code Online (Sandbox Code Playgroud)

<script src="project_folder/highcharts-more.js"></script>
Run Code Online (Sandbox Code Playgroud)


小智 5

我有一个类似的问题,根据上述建议,我首先添加了"super.setIntegerProperty("loadUrlTimeoutValue",70000);" 但这没有帮助.所以我尝试了Project - > Clean,这很有用,我现在可以启动应用了!

阿维纳什...


Nit*_*n P 5

试试这个,

1.将index.html重命名为"main.html"

2.创建一个新的"index.html"并将以下内容放入其中:

<!doctype html>
<html>
  <head>
   <title>tittle</title>
   <script>
     window.location='./main.html';
   </script>
  <body>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

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

  • window.location.href = "./ main.html中?USER = XXX&SESSION = XXX" (3认同)

Ade*_*IMM 5

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

<preference name="loadUrlTimeoutValue" value="700000" />
Run Code Online (Sandbox Code Playgroud)

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

<platform name="android">
Run Code Online (Sandbox Code Playgroud)


Dea*_*ano 4

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

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

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

现在加载并执行时不会出现相同的错误。

希望这可以帮助