升级到Android 11后AdMob出现Strict Secure Cookie策略错误
我之前升级到Android 11(API 30)时也碰到过一模一样的问题,折腾了好一阵才解决,给你几个亲测有效的方案:
核心原因
Android 11开始严格执行Secure Cookie政策:如果Cookie标记了Secure属性,就只能在HTTPS链接下设置,但AdMob测试广告的旧请求用了HTTP的googleads.g.doubleclick.net,这就触发了政策冲突。
1. 强制更新到最新版Google Mobile Ads SDK
虽然你提到已经用了最新版,但建议再确认依赖配置是否正确,确保SDK版本足够新(目前最新稳定版是22.6.0)。在Module级别的build.gradle中更新依赖:
implementation 'com.google.android.gms:play-services-ads:22.6.0'
Google已经在后续SDK版本中修复了这个测试广告的URL协议问题,更新后大部分情况下这个错误会自动消失。
2. 添加网络安全配置豁免(临时方案)
如果更新SDK后还是有问题,可以通过网络安全配置允许该域名的明文流量:
- 在
res/xml目录下创建network_security_config.xml,内容如下:
<?xml version="1.0" encoding="utf-8"?> <network-security-config> <domain-config cleartextTrafficPermitted="true"> <domain includeSubdomains="true">googleads.g.doubleclick.net</domain> </domain-config> </network-security-config>
- 在
AndroidManifest.xml的application标签中添加引用:
<application ... android:networkSecurityConfig="@xml/network_security_config"> ... </application>
3. 确认使用官方测试广告单元ID
确保你用的是Google提供的官方测试广告ID,而不是生产环境的广告ID——生产ID在测试场景下可能触发额外的安全限制。比如常用的测试ID:
- 横幅广告:
ca-app-pub-3940256099942544/6300978111 - 插屏广告:
ca-app-pub-3940256099942544/1033173712 - 原生广告:
ca-app-pub-3940256099942544/2247696110
4. 清除应用缓存与Cookie
旧的Cookie残留可能导致政策冲突,进入手机设置→应用→找到你的应用→清除存储(包括缓存和数据),然后重启应用再测试。
内容的提问来源于stack exchange,提问作者NullPointerException




