A Webview do Android fornece a mensagem net :: ERR_CACHE_MISS

152

Criei um aplicativo da web e deseja criar um aplicativo para Android que tenha uma visualização na web que mostre meu aplicativo da web. Depois de seguir as instruções do desenvolvedor do Google para criar um aplicativo, eu o instalei com sucesso no meu telefone com o Android 5.1.1.

No entanto, quando executo o aplicativo pela primeira vez, a visualização na web mostra a mensagem:

página web não disponível

A página da Web em [Lorem Ipsum URL] não pôde ser carregada como:

net :: ERR_CACHE_MISS

zehata
fonte
Talvez este link vai ajudar você stackoverflow.com/questions/25664146/...
Bidhan

Respostas:

332

Eu resolvi o problema mudando o meu AndroidManifest.xml.

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

Alan Shi
fonte
cara, você salvou meu dia! Após a atualização para o Cordova 7.0.1, o XHR não estava funcionando. Eu adicionei isso manualmente ao manifesto e ... bum! :)
Radacina
5
Sem internet, mas INTERNET! O grande! :)
Mike Keskinov
27

Eu tentei a solução acima, mas o código a seguir me ajuda a fechar esse problema.

if (18 < Build.VERSION.SDK_INT ){
    //18 = JellyBean MR2, KITKAT=19
    mWeb.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
}
Mike ChanSeong Kim
fonte
Onde é isso Builde mwebvars?
Michael Pacheco
@MichaelPacheco Build é do sistema Android e mweb é o objeto de visualização na web
Acauã Pitta
24

Para qualquer coisa relacionada à Internet, seu aplicativo deve ter permissão de Internet no ManifestFile. Resolvi esse problema adicionando permissão noAndroidManifest.xml

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

Respostas reunidas! Eu queria apenas combinar todas as respostas em uma abrangente.

1. Verifique se <uses-permission android:name="android.permission.INTERNET" />está presente em manifest.xml. Verifique se está aninhado abaixo <manifest>e não<application> . Obrigado a sajid45 e Liyanis Velazquez

2. Verifique se você está usando em <uses-permission android:name="android.permission.INTERNET"/>vez do descontinuado <uses-permission android:name="android.permission.internet"/>. Muito obrigado a alan_shi e creos .

3. Se a versão mínima estiver abaixo de KK, verifique se você possui

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

porque a visualização da web adequada é adicionada apenas no KK (SDK 19). Graças a Devavrata , Mike ChanSeong Kim e Liyanis Velazquez

4. Verifique se você não possui webView.getSettings().setBlockNetworkLoads (false);. Agradecemos ao TechNikh por apontar isso.

5. Se tudo mais falhar, verifique se o seu Android Studio, Android SDK e a imagem do emulador (se você estiver usando um) estão atualizados. E se você ainda estiver enfrentando o problema, basta abrir uma nova pergunta e fazer um comentário abaixo no seu URL.

zehata
fonte
Oi zehata. Não adicione comentários ou conselhos de votação às postagens. A maioria dos leitores nem entra, muito menos vote, portanto, não é uma informação útil para a maioria dos leitores. Deixe as pessoas votarem organicamente.
halfer
8

Usar

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

Deve resolver o erro.

Devavrata
fonte
Esta resposta me ajudou muito, obrigado. Mas eu uso #WebSettings.LOAD_NO_CACHE
Alexander Skvortsov
6

Verifique também se o seu código não é verdadeiro para setBlockNetworkLoads

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