You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

已配置INTERNET权限的Flutter WebView从Google Play下载后报net::ERR_CACHE_MISS如何排查

排查点清单

  • 检查多环境AndroidManifest合并结果
    你当前只提供了app/src/main/目录下的清单文件,需要额外检查app/src/release/下的AndroidManifest.xml:

    1. 是否显式配置了android:usesCleartextTraffic="false",如果你的WebView需要加载HTTP明文地址,该配置会拦截请求,可能间接触发缓存相关报错
    2. 是否引入了自定义networkSecurityConfig,其中的域名拦截、证书校验规则可能限制了WebView的正常请求
      你可以直接在本地构建release APK后,用APK Analyzer打开安装包,确认最终合并的清单文件中确实保留了INTERNET权限,没有被其他依赖的配置覆盖。
  • 验证Google Play AAB分发逻辑是否异常
    你上传的是AAB格式包,Google Play会根据用户设备的架构、语言、分辨率拆分分发独立APK,建议做如下校验:

    1. 登录Google Play Console,进入「应用包资源管理器」,下载对应你测试设备的分发APK,解压后确认清单文件是否保留了INTERNET权限,没有被平台的二次构建逻辑误裁剪
    2. 本地用bundletool模拟Google Play的拆分逻辑,导出对应你设备架构的单APK安装测试,比如针对arm64架构的设备执行如下命令,确认是否能复现问题:
    bundletool build-apks --bundle=build/app/outputs/bundle/release/app-release.aab \
    --output=build/app/outputs/bundle/release/app-release-single.apks \
    --ks=key/my-release-key.jks \
    --ks-pass=pass:mypass \
    --ks-key-alias=my-alias \
    --key-pass=pass:mypass \
    --mode=default \
    --device-spec=device_spec.json
    

    其中device_spec.json可以通过bundletool get-device-spec --output=device_spec.json从你测试的设备导出,尽可能模拟Google Play的分发规则。

  • 检查WebView缓存配置逻辑

    1. 确认你的WebView是否配置了非默认的缓存模式,比如LOAD_CACHE_ONLY,这类配置在应用首次安装没有本地缓存时会直接抛出ERR_CACHE_MISS错误,本地测试时因为你之前安装过应用残留了缓存所以不会触发
    2. 检查缓存配置的初始化时机,确保所有WebSettings配置在调用loadUrl之前执行完成,避免异步延迟初始化导致首次加载时缓存规则未生效
  • 校验分区存储权限配置
    如果你的应用自定义了WebView的缓存目录到外部存储空间,需要确认是否动态申请了存储权限。本地测试时你可能已经提前授权了权限,而从Google Play新安装的应用未授权时会出现缓存写入失败,触发对应报错。

内容的提问来源于stack exchange,提问作者whitebear

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 23:57:02