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

Flutter应用Google Play Console AD_ID权限警告无法消除求助

问题:Google Play Console 持续提示AD_ID权限缺失

我当前使用google_mobile_ads: ^5.1.0,但Google Play Console一直显示如下警告:

Your advertising ID declaration in Play Console says that your app uses advertising ID. A manifest file in one of your active artifacts doesn't include the com.google.android.gms.permission.AD_ID permission.

我需要使用广告功能,已经在android/app/src/main/AndroidManifest.xml中添加了权限:

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

我甚至尝试添加tools:node="remove"排查重复权限问题,并且确认生成的.aab包中的AndroidManifest.xml确实包含该权限,但警告依然存在。我怀疑问题出在某个依赖项使用了AD_ID但未申请权限,请问该如何检查这类情况?又该如何强制让受影响的清单添加AD_ID权限?

我的依赖列表如下:

dependencies:
  flutter:
    sdk: flutter
  
  uuid: ^4.4.0
  english_words: ^4.0.0
  provider: ^6.0.0
  validators: ^3.0.0
  fl_chart: ^0.68.0
  card_swiper: ^3.0.1
  intl: ^0.19.0
  build_runner: ^2.4.11
  hive: ^2.2.3
  hive_flutter: ^1.1.0
  hive_generator: ^2.0.1
  path_provider: ^2.1.3
  prompt_dialog: ^1.0.16
  animated_snack_bar: ^0.4.0
  confirm_dialog: ^1.0.3
  flutter_isolate: ^2.0.4
  modal_bottom_sheet: ^3.0.0
  fluttericon: ^2.0.0
  flutter_native_splash: ^2.4.0
  flutter_launcher_icons: ^0.13.1
  alert_dialog: ^1.0.2
  bulleted_list: ^0.0.1+0.1a
  in_app_purchase: ^3.2.0
  flutter_staggered_grid_view: ^0.7.0
  image_picker: ^1.1.2
  cross_file: ^0.3.4+1
  dio: ^5.5.0+1
  cryptography: ^2.7.0
  cryptography_flutter: ^2.3.2
  url_launcher: ^6.3.0
  video_player: ^2.9.1
  file_picker: ^8.0.0+1
  screenshot: ^3.0.0
  share_plus: ^10.0.2
  flutter_sharing_intent: ^1.1.1
  google_mobile_ads: ^5.1.0
  app_tracking_transparency: ^2.0.6

一、排查依赖项的AD_ID权限问题

  • 查看合并后的清单:在项目根目录执行flutter build apk --debug,然后打开build/app/intermediates/merged_manifest/debug/AndroidManifest.xml,搜索com.google.android.gms.permission.AD_ID,看看有没有依赖项用tools:node="remove"把权限删掉了。
  • 检查单个依赖的清单文件:去本地pub缓存目录(比如~/.pub-cache/hosted/pub.dev/)找到各个依赖的android文件夹,打开src/main/AndroidManifest.xml,逐个查看是否存在用到AD_ID但未声明权限,或者主动移除权限的情况。
  • 用Gradle日志分析合并过程:进入项目的android目录,执行./gradlew app:mergeDebugAndroidManifest --info,在日志里查找AD_ID权限相关的合并记录,能明确看到哪个依赖对该权限做了修改。

二、强制确保AD_ID权限被保留

如果确定是某个依赖移除了权限,直接在你的主AndroidManifest.xml里做以下操作:

  1. 先给manifest标签加上tools命名空间:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="你的应用包名">
  1. 然后用tools:node="merge"强制保留权限:
<uses-permission android:name="com.google.android.gms.permission.AD_ID" tools:node="merge" />

这个配置会覆盖所有依赖项对该权限的移除操作,确保合并后的清单里一定包含这个权限。

另外也有可能是Play Console的缓存延迟,提交新构建后等几个小时再查看,说不定警告就自动消失了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 16:40:22