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

时间:2012-09-07 14:10:57

标签: android cordova

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

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

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

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

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

17 个答案:

答案 0 :(得分:175)

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

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

答案 1 :(得分:70)

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

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

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

<强>解释

由于以下原因,可能会发生这种情况

核心原因:问题可能是由于模拟器的速度所以网络太慢,无法及时完成通信。

这可能是由于:

  1. 你的代码/数据/图片太大了(我想在你的情况下你正在使用一些图像,因为你说你做了一些UI修改,可能是图像的大小很高)。
  2. 您的脚本可能有无限或长循环,因此加载时间过长。
  3. 你将使用太多的脚本(jQuery,iscroll等等..更多的插件或脚本)

答案 2 :(得分: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");

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

refernce

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

答案 3 :(得分:9)

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

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

js/jquery.min.js

答案 4 :(得分:6)

删除index.html中的外部脚本

改变这个:

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

<script src="project_folder/highcharts-more.js"></script>

答案 5 :(得分:5)

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

...阿维纳什

答案 6 :(得分: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>
     

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

答案 7 :(得分:4)

我的项目也是如此。

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

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

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

希望这有帮助

答案 8 :(得分:3)

扩展加载超时限制不能解决导致错误的问题,它只会避免系统显示消息,但性能会受到任何影响。

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

最终解决方案:将所有脚本,图像和css移动到某些本地文件夹并在本地加载...

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

答案 9 :(得分:3)

检查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。

答案 10 :(得分:2)

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

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

此行后立即到您的config.xml文件

<platform name="android">

答案 11 :(得分:1)

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

答案 12 :(得分:1)

如果您使用的是visual studio。有时你需要改变config.xml后

  

清洁构建解决方案   重建你的应用程序

这对我有用。

答案 13 :(得分:1)

对于我的情况,问题是由于我的WiFi丢失了互联网连接。

答案 14 :(得分:1)

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

答案 15 :(得分:0)

这是一个非常小众的情况,但我想我会在这里发布它,以防它为其他人节省我花在兜圈子上的时间。

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

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

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

答案 16 :(得分:-8)

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

我刚刚关注 ionic guide ,其中一个步骤是:

$ rm www/index.html

在iOS上这没有问题,因为在构建过程中编译器需要一些默认的HTML。但是,在为android构建时,不使用示例index.html。花了一些时间找我(&#34;为什么它适用于iOS,但不适用于Android ......?)

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