Android Webview gibt die Nachricht net :: ERR_CACHE_MISS aus


152

Ich habe eine Web-App erstellt und möchte eine Android-App mit einer Webansicht erstellen, die meine Web-App anzeigt. Nachdem ich die Anweisungen von Google Developer zum Erstellen einer App befolgt habe, habe ich sie mit Android 5.1.1 erfolgreich auf meinem Telefon installiert.

Wenn ich die App zum ersten Mal ausführe, wird in der Webansicht die folgende Meldung angezeigt:

Internetseite nicht verfügbar

Die Webseite unter [Lorem Ipsum URL] konnte nicht geladen werden als:

net :: ERR_CACHE_MISS


Vielleicht hilft Ihnen dieser Link bei stackoverflow.com/questions/25664146/…
Bidhan

Antworten:


332

Ich habe das Problem gelöst, indem ich meine geändert habe AndroidManifest.xml.

alt: <uses-permission android:name="android.permission.internet"/>
neu:<uses-permission android:name="android.permission.INTERNET"/>


Mann, du hast meinen Tag gerettet! Nach dem Upgrade auf Cordova 7.0.1 funktionierte kein XHR. Ich habe dies manuell zum Manifest hinzugefügt und ... boom! :)
Radacina

5
Kein Internet, aber INTERNET! Der Grosse! :)
Mike Keskinov

27

Ich habe die obige Lösung ausprobiert, aber der folgende Code hilft mir, dieses Problem zu schließen.

if (18 < Build.VERSION.SDK_INT ){
    //18 = JellyBean MR2, KITKAT=19
    mWeb.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
}

Wo ist das Buildund mwebvars?
Michael Pacheco

@MichaelPacheco Build ist vom Android-System und mweb ist das Webview-Objekt
Acauã Pitta

24

Für alles, was mit dem Internet zu tun hat, muss Ihre App über die Internetberechtigung in ManifestFile verfügen. Ich habe dieses Problem durch Hinzufügen einer Berechtigung in gelöstAndroidManifest.xml

<uses-permission android:name="android.permission.INTERNET" />

18

Antworten zusammengestellt! Ich wollte einfach alle Antworten zu einer umfassenden zusammenfassen.

1. Überprüfen Sie, ob <uses-permission android:name="android.permission.INTERNET" />in vorhanden ist manifest.xml. Stellen Sie sicher, dass es unter verschachtelt ist <manifest>und nicht<application> . Danke an sajid45 und Liyanis Velazquez

2. Stellen Sie sicher, dass Sie <uses-permission android:name="android.permission.INTERNET"/>anstelle des veralteten verwenden <uses-permission android:name="android.permission.internet"/>. Vielen Dank an alan_shi und creos .

3. Wenn die Mindestversion unter KK liegt, überprüfen Sie, ob Sie haben

if (18 < Build.VERSION.SDK_INT ){
    //18 = JellyBean MR2, KITKAT=19
    mWeb.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
}

oder

if (Build.VERSION.SDK_INT >= 19) {
        mWebView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
}

weil die richtige Webansicht nur in KK (SDK 19) hinzugefügt wird. Vielen Dank an Devavrata , Mike ChanSeong Kim und Liyanis Velazquez

4. Stellen Sie sicher, dass Sie keine haben webView.getSettings().setBlockNetworkLoads (false);. Vielen Dank an TechNikh für diesen Hinweis.

5. Wenn alles andere fehlschlägt, stellen Sie sicher, dass Ihr Android Studio, Android SDK und das Emulator-Image (falls Sie eines verwenden) aktualisiert werden. Und wenn Sie immer noch auf das Problem stoßen, öffnen Sie einfach eine neue Frage und geben Sie unten einen Kommentar zu Ihrer URL ab.


Hallo Zehata. Bitte fügen Sie keine Abstimmungskommentare oder Ratschläge zu Beiträgen hinzu. Die meisten Leser melden sich nicht einmal an, geschweige denn abstimmen, daher sind dies für die meisten Leser keine nützlichen Informationen. Lassen Sie die Menschen organisch abstimmen.
Halfer

8

Verwenden

if (Build.VERSION.SDK_INT >= 19) {
        mWebView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
    }

Es sollte den Fehler beheben.


Diese Antwort hat mir sehr geholfen, danke. Aber ich benutzeWebSettings.LOAD_NO_CACHE
Alexander Skvortsov

6

Stellen Sie außerdem sicher, dass Ihr Code für setBlockNetworkLoads nicht true ist

webView.getSettings().setBlockNetworkLoads (false);
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.