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

Android应用WebView加载HTTP站点报ERR_CLEARTEXT_NOT_PERMITTED如何解决

解决方案

根因分析

你遇到的net::ERR_CLEARTEXT_NOT_PERMITTED是Android 9(API 28)及以上版本的默认限制:系统默认禁止所有未加密的HTTP明文流量,你的配置未生效原因如下:

  • 当你同时配置了android:usesCleartextTraffic和自定义networkSecurityConfig时,manifest里的usesCleartextTraffic配置会被覆盖失效,优先级以网络安全配置文件为准
  • 你当前的network_security_config.xml仅配置了域名的信任锚,没有显式允许该域名的明文流量,因此限制仍然生效
  • onReceivedSslError未触发是因为该错误是系统网络层拦截明文流量导致,还没有进入SSL证书校验的流程,因此不会回调该方法

可行解决方法

按优先级从高到低排列:

1. 最优方案:给站点配置HTTPS证书(一劳永逸)

现在免费的SSL证书申请非常便捷,直接给你的站点部署证书后,将链接前缀改为https://即可正常加载,不需要修改任何应用配置,也符合Android官方的安全规范,避免后续可能的明文流量安全风险。你可以先直接测试https://retirementcalculatoraustralia.com/privacy-policy.php是否能在浏览器打开,大部分云服务商/虚拟主机商现在都会默认给新上线站点配发免费证书,大概率可以直接使用。

2. 修改网络安全配置,允许对应域名的明文流量

调整你的network_security_config.xml内容,在domain-config节点添加android:cleartextTrafficPermitted="true"属性:

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config android:cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">retirementcalculatoraustralia.com</domain>
        <trust-anchors>
            <certificates src="system"/>
        </trust-anchors>
    </domain-config>
</network-security-config>

修改后重新编译安装应用即可生效。

3. 临时全量允许明文流量(不推荐,仅用于测试)

如果你只是临时测试,可以删掉manifest里的android:networkSecurityConfig配置,仅保留android:usesCleartextTraffic="true",即可全局允许所有HTTP明文流量,但该方案不符合安全规范,不建议正式上线使用。

额外排查点

如果修改后仍然无法加载,可以检查以下配置:

  • 确认你的应用targetSdkVersion是否≥28,低版本系统默认不会限制明文流量
  • 确认应用已经声明了android.permission.INTERNET权限,没有网络权限也会导致加载失败
  • 清除应用缓存后重新测试,避免旧的网络配置缓存影响

内容的提问来源于stack exchange,提问作者Lorna from Perth

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 02:09:03