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


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


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

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

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.


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.


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);
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.