La vista web de Android muestra el mensaje net :: ERR_CACHE_MISS

152

Creé una aplicación web y quiero crear una aplicación de Android que tenga una vista web que muestre mi aplicación web. Después de seguir las instrucciones del desarrollador de Google para crear una aplicación, la instalé con éxito en mi teléfono con Android 5.1.1.

Sin embargo, cuando ejecuto la aplicación por primera vez, la vista web muestra el mensaje:

página web no disponible

La página web en [URL de Lorem Ipsum] no se pudo cargar como:

net :: ERR_CACHE_MISS

zehata
fuente
Tal vez este enlace lo ayudará a stackoverflow.com/questions/25664146/…
Bidhan

Respuestas:

334

Resolví el problema cambiando mi AndroidManifest.xml.

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

alan shi
fuente
hombre, me salvaste el día! Después de la actualización a Cordova 7.0.1, no funcionaba XHR. Agregué esto manualmente al manifiesto y ... ¡boom! :)
Radacina
55
No hay internet, pero INTERNET! ¡El Grande! :)
Mike Keskinov
27

Intenté la solución anterior, pero el siguiente código me ayudó a cerrar este problema.

if (18 < Build.VERSION.SDK_INT ){
    //18 = JellyBean MR2, KITKAT=19
    mWeb.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
}
Mike ChanSeong Kim
fuente
¿Dónde está esto Buildy mwebvars?
Michael Pacheco
@MichaelPacheco Build es del sistema Android y mweb es el objeto webview
Acauã Pitta
24

Para cualquier cosa relacionada con Internet, su aplicación debe tener el permiso de Internet en ManifestFile. Resolví este problema agregando permiso enAndroidManifest.xml

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

Respuestas reunidas! Solo quería combinar todas las respuestas en una completa.

1. Compruebe si <uses-permission android:name="android.permission.INTERNET" />está presente en manifest.xml. Asegúrese de que esté anidado debajo <manifest>y no<application> . Gracias a sajid45 y Liyanis Velazquez

2. Asegúrese de que está utilizando en <uses-permission android:name="android.permission.INTERNET"/>lugar de la obsoleta <uses-permission android:name="android.permission.internet"/>. Muchas gracias a alan_shi y Creos .

3. Si la versión mínima es inferior a KK, verifique que tenga

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);
}

porque la vista web adecuada solo se agrega en KK (SDK 19). Gracias a Devavrata , Mike ChanSeong Kim y Liyanis Velazquez

4. Asegúrese de que no tiene webView.getSettings().setBlockNetworkLoads (false);. Gracias a TechNikh por señalar esto.

5. Si todo lo demás falla, asegúrese de que su Android Studio, Android SDK y la imagen del emulador (si está usando uno) estén actualizados. Y si todavía está resolviendo el problema, simplemente abra una nueva pregunta y haga un comentario debajo de su URL.

zehata
fuente
Hola zehata No agregue comentarios o consejos de votación a las publicaciones. La mayoría de los lectores ni siquiera inician sesión, y mucho menos votan, por lo que no es información útil para la mayoría de los lectores. Deje que la gente vote orgánicamente.
halfer
8

Utilizar

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

Debería resolver el error.

Devavrata
fuente
Esta respuesta me ayudó mucho, gracias. Pero yo usoWebSettings.LOAD_NO_CACHE
Alexander Skvortsov
6

También asegúrese de que su código no sea verdadero para setBlockNetworkLoads

webView.getSettings().setBlockNetworkLoads (false);
TechNikh
fuente