Cordova连接服务器失败。

8

无法连接到服务器(file:///android-asset/www/index.html)

当我运行我的安卓应用程序时,会出现这个提示。 请告诉我如何解决这个问题。


你能添加一些代码吗?就像在你的主活动文件中的那些代码一样。你的索引文件是否在资产目录内?例如:assets/www/index.html。 - Sanjay D
5个回答

26
对于最新的 Cordova(4+),在 config.xml 中有一个设置:

例如:


例如:

<preference name="LoadUrlTimeoutValue" value="70000"/>

将默认超时时间增加到70秒(默认值为20秒),减少超时的机会。

文档:https://cordova.apache.org/docs/en/latest/config_ref/index.html#preference

加载页面时等待抛出超时错误的时间量。


这个解决了我在最新版本的Cordova中遇到的问题。比其他解决方法简单多了。 - markj
请添加此标签。 - Bharath
在您的项目根目录下的config.xml文件中。 - driconmax

8
这个问题已经被问了很多次了。可以通过为webview调用(index.html)添加超时来解决此问题。只需在project_name.java类中添加以下内容。
 super.setIntegerProperty("loadUrlTimeoutValue", 5000);

在最新的Cordova中,只需使用以下代码即可设置超时:
 super.loadUrl(Config.getStartUrl(), 5000);

请查看以下问题:

问题1

问题2

更新:

另外一种解决方案,尝试如下操作:

创建一个名为main.html的文件,并将代码放入其中,在index.html中只需重定向到main.html即可。

<script>
 window.location='./main.html';
</script>

manukv,谢谢你的回答,但它不起作用。即使我修改了我的.java类,我仍然得到相同的错误。请告诉我是否有其他解决方案。 - user3151224
你正在使用哪个Cordova版本?你是在模拟器还是设备上尝试运行应用程序?回答已更新,请检查。 - manukv

4

这篇博客文章来自Robert Kehoe:

  • 对我来说很容易
  • 讲得很清楚
  • 对我有效

将您的index.html重命名为“main.html”

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

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

重建你的应用程序!不再有错误!

罗伯特还说:

另一个好主意是为您的应用程序创建“闪屏画面”,这样用户会在完全准备好之前即可获得应用程序正在加载/工作的即时反馈。


很遗憾,我没有将Cordova及其插件注入到main.html中。 - viskin
在我的情况下,是启动画面超时了。 :-( - Brian Knoblauch

2

这个问题的主要原因是页面加载时间过长。

解决这个问题的方法是通过一个小技巧,创建一个名为index.html的HTML页面,将现有的首页更名为main.html或其他名称,并在该页面上进行重定向,如下所示:

    <script>
       window.location='main.html';
    </script>

我相信它会非常有效。

0

嘿,我认为这个错误可能是由于在启动时加载多个脚本,因此需要更长的时间。

所以你可以在你的Java中设置如下...

super.loadUrl("file:///android_asset/www/index.html");
super.setIntegerProperty("loadUrlTimeoutValue", 600000);

参考文献1 参考文献2


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接