【问题标题】:Application error: there was a network error(file:///assets/www/index.html应用程序错误:出现网络错误(file:///assets/www/index.html
【发布时间】:2013-06-24 05:52:01
【问题描述】:

我正在尝试在 eclipse juno 上运行 phonegap 应用程序。 安卓版本为4.1.2。应用程序给出错误提示:

应用程序错误:出现网络错误(file:///assets/www/index.html 当我尝试运行应用程序时。

android清单如下

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:windowSoftInputMode="adjustPan"
      package="com.initial.belgium" android:versionName="1.0" android:versionCode="1" android:hardwareAccelerated="true">
    <supports-screens
        android:largeScreens="true"
        android:normalScreens="true"
        android:smallScreens="true"
        android:xlargeScreens="true"
        android:resizeable="true"
        android:anyDensity="true"
        />

    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.RECEIVE_SMS" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-permission android:name="android.permission.RECORD_VIDEO"/>
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
    <uses-permission android:name="android.permission.READ_CONTACTS" />
    <uses-permission android:name="android.permission.WRITE_CONTACTS" />   
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />   
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <uses-permission android:name="android.permission.BROADCAST_STICKY" />


    <application android:icon="@drawable/icon" android:label="@string/app_name"
        android:hardwareAccelerated="true"
        android:debuggable="true">
        <activity android:name="belgium" android:label="@string/app_name"
                android:theme="@android:style/Theme.Black.NoTitleBar"
                android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

    <uses-sdk android:minSdkVersion="7" android:targetSdkVersion="16"/>
</manifest> 

java源码如下:

package com.initial.belgium;

import android.os.Bundle;
import org.apache.cordova.*;

public class belgium extends DroidGap
{
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        super.loadUrl("file:///assets/www/index.html"); 
    }
}

有人可以帮我解决这个问题吗? 谢谢

【问题讨论】:

  • 您的 index.html 中是否有链接需要互联网访问的文件?类似于 JS 文件或 CSS 文件。
  • 没有。没有那种事。
  • 也许吧!尝试添加这一行 super.setIntegerProperty("loadUrlTimeoutValue", 60000);就在 super.loadUrl 方法的上方。看看这是否有效。
  • 添加,同样的错误。
  • super.loadUrl("file:///android_asset/www/index.htm");即使位置指向您的“资产”文件夹,也要使用它。

标签: eclipse cordova


【解决方案1】:

尝试改变:

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

收件人:

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

【讨论】:

  • 我做到了。那是默认的 url 位置。但它给出了同样的错误。
  • @user2511113 您是否尝试过将所有外部资源移至资产文件夹? (例如:Jquery javascripts 等)
  • 没有一个......我想我会在最初的工作后这样做。但是即使是默认文件也没有加载所以......想知道。
  • 您评论的错误通常出现在您的应用无法访问某些远程文件时,因为您没有权限(不是您的情况)、网络问题、防火墙、延迟等。这就是为什么我建议将所有 JS 移动到本地文件夹。也许您可以尝试在没有 JS 的情况下加载“hello world” index.html,以验证问题不是来自其他地方。
【解决方案2】:

对我来说,问题在于 Android 的 Phonegap“Hello World”教程根本不起作用。它在platforms / android / assets下创建了一个名为“phonegap-app-hello-world-3.1.0”的子文件夹。这个文件夹是所有文件所在的位置,所以一旦我更改了 loadUrl 参数以反映它加载时没有错误:

super.loadUrl("file:///android_asset/www/phonegap-app-hello-world-3.1.0/www/index.html");

希望这对某人有所帮助,这样可以节省我几个小时的闲逛时间!

【讨论】:

    【解决方案3】:

    我在网上找到了一个非常好的解决方案。

    您基本上需要做的就是将 index.html 的内容移动到另一个文件,比如 app.html。

    然后在你原来的 index.html 中有如下代码:

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

    与服务器的连接不会再超时,应用应该会成功加载。

    现在我没有想出这个好主意。所有功劳归功于罗伯特·基欧:

    https://www.robertkehoe.com/2013/01/fix-for-phonegap-connection-to-server-was-unsuccessful/

    这样做帮助我解决了我自己的 Android phonegap 应用程序的类似问题...

    【讨论】:

      【解决方案4】:

      .loadUrl 应该采用指向服务器的 url。将其更改为http://www.google.com/,它应该可以工作。

      要使用您自己的文件,请将它们上传到网络服务器或在本地计算机上启动一个。如果您在 Mac 上,则有一个内置的(只需从系统设置中启用 Web 共享)。或者如果你安装了 Python,你可以从 /assets/www 目录运行 python -m SimpleHTTPServer,然后将 URL 更改为 'http://localhost:8000/index.html'

      【讨论】:

      • 谢谢我改变了。 LogCat 出现错误:06-24 05:59:22.662: E/Trace(1582): error opening trace file: No such file or directory (2)
      • 我正在使用 Windows 7。它的功能是否因系统而异?因为同一段代码在另一个系统上也能正常工作
      【解决方案5】:

      对我来说,这个问题是因为我编辑并重命名了 index.html 文件和 app.js 文件。当我重命名时,我包含了扩展名 .html 和 .js。这导致文件被重命名为 index.html.html 和 app.js.js。很明显,该项目找不到它正在寻找的文件。我相信这是上面给出的答案的体现。

      【讨论】:

        猜你喜欢
        • 2015-09-02
        • 1970-01-01
        • 2021-12-11
        • 2015-10-07
        • 2016-04-29
        • 2016-07-05
        • 2020-12-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多