Android Webview给出net :: ERR_CACHE_MISS消息


152

我建立了一个网络应用程序,并想创建一个具有显示我的网络应用程序的网络视图的android应用程序。按照Google Developer的说明创建应用后,我已将其成功安装在装有Android 5.1.1的手机上。

但是,当我第一次运行该应用程序时,Webview会显示以下消息:

网页无法显示

无法将[Lorem Ipsum URL]上的网页加载为:

净:: ERR_CACHE_MISS


也许这个链接将帮助您stackoverflow.com/questions/25664146/...
Bidhan

Answers:


332

我通过改变我的问题解决了这个问题AndroidManifest.xml

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


男人,你救了我的一天!升级到Cordova 7.0.1后,没有XHR工作。我手动将此添加到清单和...轰!:)
Radacina

5
没有互联网,但是有互联网!大的那个!:)
Mike Keskinov

27

我尝试了上述解决方案,但是以下代码帮助我解决了这个问题。

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

Buildmwebvars 在哪里?
Michael Pacheco

@MichaelPacheco构建是Android系统和MWEB是web视图对象
Acauã皮塔

24

对于与互联网相关的任何内容,您的应用必须在ManifestFile中具有互联网许可。我通过在中添加权限来解决此问题AndroidManifest.xml

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

18

答案汇总!我只想将所有答案组合成一个全面的答案。

1.检查中是否<uses-permission android:name="android.permission.INTERNET" />存在manifest.xml确保它嵌套在<manifest>而不是之下<application>。感谢sajid45Liyanis Velazquez

2.确保您使用<uses-permission android:name="android.permission.INTERNET"/>而不是已弃用的<uses-permission android:name="android.permission.internet"/>。非常感谢alan_shicreos

3.如果最低版本低于KK,请检查您是否拥有

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

要么

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

因为仅在KK(SDK 19)中添加了适当的Web视图。感谢DevavrataMike ChanSeong KimLiyanis Velazquez

4.确保您没有webView.getSettings().setBlockNetworkLoads (false);。感谢TechNikh指出这一点。

5.如果其他所有方法均失败,请确保更新了Android Studio,Android SDK和仿真器映像(如果使用的是映像)。如果您仍然遇到问题,请打开一个新问题,然后在下面的URL中添加评论。


嗨zehata。请不要在帖子中添加投票评论或建议。大多数读者甚至不登录,更不用说投票了,因此对于大多数读者而言,这不是有用的信息。让人们有机地投票。
Halfer

8

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

它应该解决错误。


谢谢,这个答案对我有很大帮助。但是我使用WebSettings.LOAD_NO_CACHE
亚历山大·斯科沃佐夫

6

还要确保您的代码对于setBlockNetworkLoads不正确

webView.getSettings().setBlockNetworkLoads (false);
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.