博客
关于我
android webview加载网页时提示NET::ERR_CACHE_MISS的错误
阅读量:744 次
发布时间:2019-03-22

本文共 1258 字,大约阅读时间需要 4 分钟。

webview加载网页时提示NET::ERR_CACHE_MISS的错误提示,通常是由于请求的资源没有找到缓存而需要从网络上下载。在Android应用中,这可能是由于缺少网络访问权限或者服务器端的问题引起。下面是一些常见的解决方法和原因分析:

1. 网络权限配置

确保AndroidManifest.xml文件中包含网络访问权限的声明。这种权限通常是必须的,尤其是在处理跨域请求时。如果没有这个权限,WebView无法进行网络请求,导致错误提示。在文件中添加以下内容即可:

这一步最常被遗漏的原因之一。

2. URL的有效性

确认请求的URL是否有效并且能够正常访问。有时候,域名配置错误或服务器端未投入服务会导致请求失败,从而触发缓存不存在的错误提示。通过在浏览器中手动输入URL,测试是否能正常访问,可以帮助排查是否存在服务器问题。

3. 缓存控制

调整WebView对资源缓存的控制策略。默认情况下,WebView会存储访问过的资源,如果不希望使用缓存,可以通过设置参数来禁用缓存:

WebView webView = new WebView(this);webView.getSettings().setCacheEnabled(false);webView.getSettings().setAppCacheEnabled(false);

这样可以确保每次请求都能从服务器获取最新内容,避免缓存引发的错误提示。

4. 进程权限

查看AndroidManifest.xml中的声明,确保主进程和WebView进程的权限设置正确。如果应用程序使用多个进程,可能需要为每个进程添加必要的权限,尤其是用于网络操作的进程。

5. 调试日志分析

使用Android Studio的日志工具查看WebView的调试信息,看看是否有更详细的错误描述。通过这些日志可以更准确地定位问题,尤其是在遇到跨域请求、证书问题或服务器响应异常时。

6. 高级权限控制

在请求网络资源之前,可以添加权限检查,确保应用在合法范围内进行操作。例如,可以使用网络权限接口来判断权限是否有效:

int checkPermission = ContextCompat.checkSelfPermission(this, Manifest.permission.INTERNET);if (checkPermission != PackageManager.PERMISSION_GRANTED) {    // 请求权限    ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.INTERNET}, 100);}

这样可以在权限不足时提醒用户,避免应用崩溃或异常退出。

通过以上步骤,可以系统地排查和解决WebView加载网页时NET::ERRemennost错误的问题。建议从基础配置开始,逐步增加高级调试和权限控制,以确保应用能够正常运行。

转载地址:http://qwxwk.baihongyu.com/

你可能感兴趣的文章
Nginx配置如何一键生成
查看>>
Nginx配置实例-动静分离实例:搭建静态资源服务器
查看>>
Nginx配置实例-反向代理实例:根据访问的路径跳转到不同端口的服务中
查看>>
Nginx配置实例-反向代理实现浏览器请求Nginx跳转到服务器某页面
查看>>
Nginx配置实例-负载均衡实例:平均访问多台服务器
查看>>
Nginx配置文件nginx.conf中文详解(总结)
查看>>
Nginx配置自带的stub状态实现活动监控指标
查看>>
Nginx配置详解
查看>>
nginx配置详解、端口重定向和504
查看>>
Nginx配置负载均衡到后台网关集群
查看>>
Nginx配置限流,技能拉满!
查看>>
Nginx配置静态代理/静态资源映射时root与alias的区别,带前缀映射用alias
查看>>
Nginx面试三连问:Nginx如何工作?负载均衡策略有哪些?如何限流?
查看>>
nginx:/usr/src/fastdfs-nginx-module/src/common.c:21:25:致命错误:fdfs_define.h:没有那个文件或目录 #include
查看>>
Nginx:NginxConfig可视化配置工具安装
查看>>
ngModelController
查看>>
ngrok | 内网穿透,支持 HTTPS、国内访问、静态域名
查看>>
ngrok内网穿透可以实现资源共享吗?快解析更加简洁
查看>>
NHibernate学习[1]
查看>>
NHibernate异常:No persister for的解决办法
查看>>