Android Webview donne le message net :: ERR_CACHE_MISS

152

J'ai créé une application Web et je souhaite créer une application Android avec une vue Web qui affiche mon application Web. Après avoir suivi les instructions du développeur Google pour créer une application, je l'ai installée avec succès sur mon téléphone avec Android 5.1.1.

Cependant, lorsque j'exécute l'application pour la première fois, la vue Web affiche le message:

Page Web non disponible

La page Web à [URL Lorem Ipsum] n'a pas pu être chargée en tant que:

net :: ERR_CACHE_MISS

zehata
la source
Peut-être que ce lien vous aidera à stackoverflow.com/questions/25664146/…
Bidhan

Réponses:

334

J'ai résolu le problème en changeant mon fichier AndroidManifest.xml.

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

Alan Shi
la source
mec, tu as sauvé ma journée! Après la mise à niveau vers Cordova 7.0.1, aucun XHR ne fonctionnait. J'ai ajouté manuellement ceci au manifeste et ... boum! :)
Radacina
5
Pas d'Internet, mais INTERNET! Le grand! :)
Mike Keskinov
27

J'ai essayé la solution ci-dessus, mais le code suivant m'aide à résoudre ce problème.

if (18 < Build.VERSION.SDK_INT ){
    //18 = JellyBean MR2, KITKAT=19
    mWeb.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
}
Mike ChanSeong Kim
la source
Où est-ce Buildet mwebVars?
Michael Pacheco le
@MichaelPacheco Build provient du système Android et mweb est l'objet de la vue Web
Acauã Pitta
24

Pour tout ce qui concerne Internet, votre application doit disposer de l'autorisation Internet dans ManifestFile. J'ai résolu ce problème en ajoutant une autorisation dansAndroidManifest.xml

<uses-permission android:name="android.permission.INTERNET" />
sajid45
la source
18

Réponses rassemblées! Je voulais simplement combiner toutes les réponses en une seule complète.

1. Vérifiez si <uses-permission android:name="android.permission.INTERNET" />est présent dans manifest.xml. Assurez-vous qu'il est imbriqué sous <manifest>et non<application> . Merci à sajid45 et Liyanis Velazquez

2. Assurez-vous que vous utilisez à la <uses-permission android:name="android.permission.INTERNET"/>place de la version obsolète <uses-permission android:name="android.permission.internet"/>. Un grand merci à alan_shi et creos .

3. Si la version minimale est inférieure à KK, vérifiez que vous disposez

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

ou

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

car la vue Web appropriée n'est ajoutée que dans KK (SDK 19). Merci à Devavrata , Mike ChanSeong Kim et Liyanis Velazquez

4. Assurez-vous que vous ne l'avez pas webView.getSettings().setBlockNetworkLoads (false);. Merci à TechNikh pour l'avoir signalé.

5. Si tout le reste échoue, assurez-vous que votre Android Studio, Android SDK et l'image de l'émulateur (si vous en utilisez un) sont mis à jour. Et si vous rencontrez toujours le problème, ouvrez simplement une nouvelle question et faites un commentaire ci-dessous sur votre URL.

zehata
la source
Salut zehata. Veuillez ne pas ajouter de commentaires ou de conseils de vote aux messages. La plupart des lecteurs ne se connectent même pas, encore moins voter, ce n'est donc pas une information utile pour la plupart des lecteurs. Laissez les gens voter de manière organique.
halfer le
8

Utilisation

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

Cela devrait résoudre l'erreur.

Devavrata
la source
Cette réponse m'a beaucoup aidé, merci. Mais j'utiliseWebSettings.LOAD_NO_CACHE
Alexander Skvortsov
6

Assurez-vous également que votre code n'a pas la valeur true pour setBlockNetworkLoads

webView.getSettings().setBlockNetworkLoads (false);
TechNikh
la source