Android Webview 给出 net::ERR_CACHE_MISS 消息

Posted

技术标签:

【中文标题】Android Webview 给出 net::ERR_CACHE_MISS 消息【英文标题】:Android Webview gives net::ERR_CACHE_MISS message 【发布时间】:2015-08-18 16:47:23 【问题描述】:

我构建了一个 Web 应用程序,并希望创建一个具有显示我的 Web 应用程序的 web 视图的 android 应用程序。按照 Google Developer 的说明创建应用后,我成功地将其安装在我的 Android 5.1.1 手机上。

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

网页不可用

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

net::ERR_CACHE_MISS

【问题讨论】:

也许这个链接会帮助你***.com/questions/25664146/… 【参考方案1】:

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

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

【讨论】:

伙计,你拯救了我的一天!升级到 Cordova 7.0.1 后,没有 XHR 工作。我手动将其添加到清单中,然后……砰! :) 没有互联网,但有互联网!大的那个! :)【参考方案2】:

答案集合!我只想将所有答案合并为一个综合答案。

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

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

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) 中添加了正确的 webview。感谢Devavrata、Mike ChanSeong Kim 和Liyanis Velazquez

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

5.如果一切都失败了,请确保您的 Android Studio、Android SDK 和模拟器映像(如果您正在使用)已更新。如果您仍然遇到问题,只需打开一个新问题,然后在您的 URL 下方发表评论。

【讨论】:

如果一切都失败了,请在模拟器中卸载并重新安装应用程序。 从模拟器重新安装应用程序成功【参考方案3】:

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

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

【讨论】:

Buildmweb 变量在哪里? @MichaelPacheco Build 来自 Android 系统,mweb 是 webview 对象【参考方案4】:

对于任何与 Internet 相关的内容,您的应用必须在 ManifestFile 中具有 Internet 权限。我通过在AndroidManifest.xml 中添加权限解决了这个问题

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

【讨论】:

【参考方案5】:

为了解决 Webview Android 中的这个错误, 首先检查 Manifest.xml 中的权限, 如果没有在那里定义,那么定义为这样。 &lt;uses-permission android:name="android.permission.INTERNET"/&gt;

【讨论】:

【参考方案6】:

Android WebView 修复ERR_CACHE_MISS 错误解决方案

您只需在app/src/main/AndroidManifest.xml 文件中添加一行代码&lt;uses-permission android:name="android.permission.INTERNET"/&gt;,如下图所示。

    之前

    之后

【讨论】:

这个解决方案帮助了我!【参考方案7】:

使用

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

它应该可以解决错误。

【讨论】:

这个答案对我帮助很大,谢谢。但我使用WebSettings.LOAD_NO_CACHE【参考方案8】:

还要确保您的代码不具有 setBlockNetworkLoads 的 true

webView.getSettings().setBlockNetworkLoads (false);

【讨论】:

【参考方案9】:

我遇到了类似的问题,这只是因为多余的空格:

&lt;uses-permission android:name="android.permission.INTERNET "/&gt;

删除后效果很好:

&lt;uses-permission android:name="android.permission.INTERNET"/&gt;

【讨论】:

以上是关于Android Webview 给出 net::ERR_CACHE_MISS 消息的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Android WebView 中允许访问相机

如何在 Android WebView 中加载本地图像

Android Webview - 后退按钮不起作用

react js中的window.onblur事件没有在android webview中被调用

Admob横幅广告未在Android P中加载

VideoView或WebView的文件协议支持?