【问题标题】:Application Error - The connection to the server was unsuccessful. (file:///android_asset/www/index.html)应用程序错误 - 与服务器的连接不成功。 (文件:///android_asset/www/index.html)
【发布时间】:2012-09-01 10:30:34
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: android cordova


    【解决方案1】:

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

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

    【讨论】:

    • 你也应该描述一下
    • 对于任何想知道的人:这是加载页面时在引发错误之前等待的时间(以毫秒为单位):cordova.apache.org/docs/en/latest/config_ref/index.html
    • &lt;preference name="loadUrlTimeoutValue" value="120000" /&gt; 比 700000 更好,我的意思是如果您的应用程序在两分钟内没有出现,那么就有问题(您应该使用其他解决方案来修复它)。 Surly 你不想等待大约 11 分钟来查看应用程序是否启动!(这就是为什么我们首先有超时概念,对吧?:-))根据文档,默认值为 20000 (20 秒)
    • 我在我的配置文件中添加了这个,但它在 nexus 5x 上不起作用
    • 这太奇怪了。我将我的设置为 70000,在尝试加载大约 30 秒后,应用程序就死机了。我将其更改为 120000,现在它们在 3-4 秒内成功加载。这就是我改变的一切。啊。
    【解决方案2】:

    正如你所说,同一个主题有很多重复的问题。怎么解释你的情况。

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

    【讨论】:

    • 我的情况是,我仍然有一个脚本标签指向 Weinre 的本地实例。温热没有跑。因此 - 超时。
    • 我正在通过devgirl.org/2013/07/17/… 本教程使用phonegap 创建应用程序。你能告诉我这个 setIntegerproperty 在哪里。
    • -1 “问题可能是由于模拟器的速度,所以网络太慢了” - 难以置信,因为没有涉及网络!本地 android 资产。
    • 我在我的配置文件中添加了这个,但它不适用于 nexus 5x –
    【解决方案3】:

    这是可行的解决方案

    创建一个新页面 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 年发现的解决方法。

    【讨论】:

    • 实际上,您只需重命名 index.html 并使用 window.location = './index.html' 创建 main.html。无需从 MainActivity.java 更改 super.loadUrl
    • 效果一样!但是您的实际页面将更改为 main.html。但我希望我的实际页面是 index.html.BTW,我认为您的评论是错误的。您需要将index.html 重命名为main.html 并创建一个index.html 页面,然后添加window.location = './main.html'。在index.html 页面中。这应该有效。
    • 是的,你说得对!我想念那个:D 我的意思是用 window.location = './main.html' 创建 index.html。 :)
    • 为什么你的实际页面需要 index.html?
    • @madebydavid 我在 4 年前回答了这个问题。那时,没有可靠的解决方案来处理由于要加载大量脚本而导致的延迟。因此,由于脚本延迟了页面加载,该应用程序崩溃了。这是因为main.html 很轻,没有要加载的脚本,因此可以更快地初始化应用程序,然后在index.html 上加载脚本。结尾的 &lt;/head&gt; 是一个错字,现在添加。
    【解决方案4】:

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

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

    js/jquery.min.js

    【讨论】:

      【解决方案5】:

      删除 index.html 中的外部脚本

      改变这个:

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

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

      【讨论】:

        【解决方案6】:

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

        阿维纳什...

        【讨论】:

          【解决方案7】:

          试试这个,

          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.重建您的应用程序!没有更多错误!

          【讨论】:

          • 如果我必须添加一些参数,如 main.html?USER=xxx&SESSION=xxx 该怎么办?
          • window.location.href="./main.html?USER=xxx&SESSION=xxx"
          • 没有cordova和插件被注入main.html
          • 我已添加此代码,但大约 1 分钟后,启动后出现白屏。我该怎么办?
          【解决方案8】:

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

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

          到您的 config.xml 文件,紧跟在这一行之后

          <platform name="android">
          

          【讨论】:

            【解决方案9】:

            我的项目也是这样。

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

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

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

            希望对你有帮助

            【讨论】:

              【解决方案10】:

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

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

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

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

              【讨论】:

                【解决方案11】:

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

                【讨论】:

                  【解决方案12】:

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

                  【讨论】:

                    【解决方案13】:

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

                    【讨论】:

                      【解决方案14】:

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

                      干净的构建解决方案 重建你的应用

                      它对我有用。

                      【讨论】:

                        【解决方案15】:

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

                        【讨论】:

                          【解决方案16】:

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

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

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

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

                          【讨论】:

                            【解决方案17】:

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

                            我只是跟着ionic guide,其中一个步骤是:

                            $ rm www/index.html
                            

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

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

                            【讨论】:

                              猜你喜欢
                              • 1970-01-01
                              • 1970-01-01
                              • 1970-01-01
                              • 2021-06-28
                              • 1970-01-01
                              • 1970-01-01
                              • 1970-01-01
                              • 1970-01-01
                              • 1970-01-01
                              相关资源
                              最近更新 更多