繁体   English   中英

Android Webview 给出 net::ERR_CACHE_MISS 消息

[英]Android Webview gives net::ERR_CACHE_MISS message

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

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

网页无法显示

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

网络::ERR_CACHE_MISS

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

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

答案汇总! 我想将所有答案合并为一个综合答案。

1.检查manifest.xml是否存在<uses-permission android:name="android.permission.INTERNET" /> 确保它嵌套在<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);
}

因为正确的 webview 仅在 KK (SDK 19) 中添加。 感谢Devavrata , Mike ChanSeong KimLiyanis Velazquez

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

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

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

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

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

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

Android WebView 修复ERR_CACHE_MISS错误的解决方法

你只需要在你的app/src/main/AndroidManifest.xml文件中添加一行代码<uses-permission android:name="android.permission.INTERNET"/>如下图所示。

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

要解决Android Webview中的这个错误,首先检查Manifest.xml中的权限,如果没有定义,则像这样定义。 <uses-permission android:name="android.permission.INTERNET"/>

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

它应该解决错误。

还要确保您的代码对于 setBlockNetworkLoads 没有 true

webView.getSettings().setBlockNetworkLoads (false);

我找到了问题的答案。 这是因为我意外地在AndroidManifest.xml嵌套了应用程序中的权限。

@Bidhan虽然我没有使用评论,感谢您的快速回复

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

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

删除后可以正常工作:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM