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

zehata
quelle
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"/>

Alan Shi
quelle
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);
}
Mike ChanSeong Kim
quelle
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" />
sajid45
quelle
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.

zehata
quelle
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.

Devavrata
quelle
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);
TechNikh
quelle