You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

AdMob测试广告无法显示——小米设备出现证书验证错误

AdMob测试广告无法显示——小米设备出现证书验证错误

遇到这种证书验证问题确实挺闹心的,尤其是只有一台设备测试的时候,很难快速判断是设备问题还是自己的集成问题。结合你描述的情况(小米Android 15设备、修改network_security_config后仍无效),我来分享几个大概率能解决问题的排查方向:

先排查MIUI的内置安全/广告拦截设置

小米的MIUI系统有很多自定义的隐私和安全策略,很可能是这些设置干扰了AdMob的证书验证:

  • 打开「设置」→「隐私保护」→「广告服务」,把「限制广告追踪」关掉——这个选项会阻止应用获取广告相关的必要信息,甚至干扰网络请求的证书验证;
  • 进入「安全中心」,检查是否开启了「广告拦截」功能,如果开了,把你的应用加入白名单;
  • 有些MIUI版本在「隐私保护」→「特殊权限设置」里有「应用隐私保护」,看看有没有限制你的应用访问网络或者相关权限,确保所有必要权限都正常开启。

检查系统证书是否完整

Android的证书验证依赖系统内置的根证书,如果小米设备的系统证书被修改或缺失,就会出现CertPathValidatorException

  • 打开「设置」→「安全」→「加密与凭据」→「信任的凭据」,切换到「系统」标签,看看Google相关的根证书(比如GTS Root R1、GlobalSign Root CA等)是否存在;
  • 如果发现证书缺失,可以尝试重置网络设置(「设置」→「连接与共享」→「重置网络设置」),这会恢复系统默认的证书配置;
  • 另外,如果你之前装过第三方VPN、代理工具或者自定义证书,先把它们关掉/删除,这些工具很容易破坏证书链。

优化你的network_security_config配置

虽然你已经配置了,但可以试试更精准的规则,确保AdMob的域名能正常验证证书:
network_security_config.xml里添加针对AdMob域名的信任规则:

<network-security-config>
    <base-config cleartextTrafficPermitted="false">
        <trust-anchors>
            <certificates src="system" />
        </trust-anchors>
    </base-config>
    <!-- 明确信任AdMob的核心域名 -->
    <domain-config cleartextTrafficPermitted="false">
        <domain includeSubdomains="true">googleads.g.doubleclick.net</domain>
        <domain includeSubdomains="true">admob.com</domain>
        <trust-anchors>
            <certificates src="system" />
        </trust-anchors>
    </domain-config>
</network-security-config>

同时确保在AndroidManifest.xmlapplication标签里正确引用了这个配置:

<application
    ...
    android:networkSecurityConfig="@xml/network_security_config">

确认AdMob SDK版本是否兼容Android 15

Android 15对网络安全做了不少更新,旧版本的AdMob SDK可能不兼容,导致证书验证失败:

  • 如果你用的是Ionic/Capacitor插件,比如@capacitor-community/admob,请更新到最新版本;
  • 检查Android项目里的build.gradle文件,确保com.google.android.gms:play-services-ads的版本是最新的(比如22.6.0及以上)。

临时测试:关闭MIUI的开发者安全验证

如果上面的方法都没用,可以试试在开发者选项里关闭相关验证,快速定位问题:

  • 打开「设置」→「我的设备」→「全部参数」,连续点击「MIUI版本」开启开发者选项;
  • 进入「开发者选项」,找到「验证应用签名」或者「安全验证」相关的选项(不同MIUI版本位置可能不同),临时关闭后再测试广告是否能加载。

总的来说,这种问题90%以上是小米MIUI的自定义安全策略导致的,先从系统设置入手排查,再逐步确认SDK和配置的正确性。如果有条件,用Android Studio模拟器跑一个Android 15的实例测试下,就能快速判断是不是设备特定问题了。

内容来源于stack exchange

火山引擎 最新活动