Android Webview fornisce il messaggio net :: ERR_CACHE_MISS


152

Ho creato un'app Web e desidera creare un'app Android con una visualizzazione Web che mostri la mia app Web. Dopo aver seguito le istruzioni di Google Developer per creare un'app, l'ho installata correttamente sul mio telefono con Android 5.1.1.

Tuttavia, quando eseguo l'app per la prima volta, la visualizzazione Web mostra il messaggio:

pagina web non disponibile

La pagina Web in [Lorem Ipsum URL] non può essere caricata come:

Net :: ERR_CACHE_MISS


Forse questo link ti aiuterà a stackoverflow.com/questions/25664146/…
Bidhan il

Risposte:


334

Ho risolto il problema cambiando il mio AndroidManifest.xml.

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


amico, mi hai salvato la giornata! Dopo l'aggiornamento a Cordova 7.0.1 nessun XHR funzionava. L'ho aggiunto manualmente al manifest e ... boom! :)
Radacina,

5
Niente internet, ma INTERNET! Quello grande! :)
Mike Keskinov,

27

Ho provato sopra la soluzione, ma il seguente codice mi aiuta a chiudere questo problema.

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

Dov'è questo Builde vari mweb?
Michael Pacheco,

@MichaelPacheco Build proviene dal sistema Android e mweb è l'oggetto
webview

24

Per tutto ciò che riguarda Internet, l'app deve disporre dell'autorizzazione Internet in ManifestFile. Ho risolto questo problema aggiungendo l'autorizzazione inAndroidManifest.xml

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

18

Risposte assemblate! Volevo solo combinare tutte le risposte in una completa.

1. Controlla se <uses-permission android:name="android.permission.INTERNET" />è presente in manifest.xml. Assicurati che sia nidificato sotto <manifest>e non<application> . Grazie a sajid45 e Liyanis Velazquez

2. Assicurati di utilizzare <uses-permission android:name="android.permission.INTERNET"/>invece di deprecato <uses-permission android:name="android.permission.internet"/>. Mille grazie a alan_shi e creos .

3. Se la versione minima è inferiore a KK, verificare di averla

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

o

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

perché la corretta visualizzazione Web viene aggiunta solo in KK (SDK 19). Grazie a Devavrata , Mike ChanSeong Kim e Liyanis Velazquez

4. Assicurati di non averlo webView.getSettings().setBlockNetworkLoads (false);. Grazie a TechNikh per averlo segnalato.

5. Se tutto il resto fallisce, assicurati che Android Studio, Android SDK e l'immagine dell'emulatore (se ne stai usando uno) siano aggiornati. E se il problema persiste, apri una nuova domanda e fai un commento qui sotto al tuo URL.


Ciao Zehata. Si prega di non aggiungere commenti o consigli di voto ai post. La maggior parte dei lettori non effettua nemmeno l'accesso, per non parlare del voto, quindi non sono informazioni utili per la maggior parte dei lettori. Lascia che le persone votino organicamente.
halfer

8

Uso

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

Dovrebbe risolvere l'errore.


Questa risposta mi ha aiutato molto, grazie. Ma io usoWebSettings.LOAD_NO_CACHE
Alexander Skvortsov

6

Assicurati anche che il tuo codice non sia vero per setBlockNetworkLoads

webView.getSettings().setBlockNetworkLoads (false);
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.