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

使用google_mobile_ads插件上传Play Store遇AD_ID权限检测异常

Google Play提示缺失AD_ID权限但本地验证已存在的解决办法

排查方向和解决办法

1. 显式声明权限,避免合并规则干扰

虽然你已通过工具确认合并后的Manifest包含权限,但可能被其他依赖的Manifest合并策略覆盖,或是权限被设置了maxSdkVersion限制。直接在项目的android/app/src/main/AndroidManifest.xml里显式添加这条权限,强制保留:

<uses-permission android:name="com.google.android.gms.permission.AD_ID" />

如果是针对Android 13+的应用,顺带确保网络权限也存在(广告功能必需):

<uses-permission android:name="android.permission.INTERNET" />

2. 检查所有APK变体的Manifest

bundletool导出的通用APK没问题,但Google Play会生成不同架构、地区的APK变体,个别变体可能丢失权限。用bundletool导出所有变体APK逐一检查:

# 生成所有变体APK包
java -jar bundletool.jar build-apks --bundle=app-release.aab --output=all-variants.apks
# 提取所有APK到指定目录
java -jar bundletool.jar extract-apks --apks=all-variants.apks --output-dir=extracted-apks

之后用Android Studio的「Analyze APK」功能逐个检查提取出的APK,确认每个的Manifest里都有AD_ID权限。

3. 排查依赖冲突

你的依赖里permission_handler: ^10.2.0可能和google_mobile_ads的权限合并存在冲突,可以试试这些操作:

  • 把google_mobile_ads升级到最新稳定版,新版本可能修复了Manifest合并的bug
  • 执行flutter pub deps查看完整依赖树,排查是否有其他依赖在悄悄移除AD_ID权限
  • 临时注释掉permission_handler依赖,重新构建AAB并验证问题是否消失,定位是否是这个依赖导致的异常

4. 检查Play Console的缓存和配置

有时候Play Store的提示是缓存问题,或是应用的广告配置异常导致误判:

  • 等待半小时左右重新上传AAB试试
  • 进入Play Console检查应用的隐私设置和广告相关配置,确认没有禁用AD_ID的选项

5. 确保混淆规则不影响权限

如果开启了R8/ProGuard混淆,可能误删了权限相关的声明。在android/app/proguard-rules.pro里添加这条规则:

-keep class com.google.android.gms.permission.AD_ID { *; }

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 14:18:16