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

未使用Google移动广告却检测到AD_ID权限,该如何处理?

解决未使用Google Mobile Ads但Play Console显示AD_ID权限的问题

问题原因

你并未手动声明com.google.android.gms.permission.AD_ID权限,它是由项目中的第三方依赖库间接引入的——比如Firebase系列SDK或purchases_flutter这类库,可能依赖了Google Play Services的广告相关模块,导致权限被自动合并到最终的AndroidManifest中。

解决步骤

  1. 修改AndroidManifest.xml移除权限
    首先在manifest标签中添加tools命名空间,然后明确声明移除AD_ID权限:

    修改后的AndroidManifest.xml:

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        package="com.example.xxxxx">
        <uses-permission android:name="android.permission.INTERNET"/>
        <uses-permission android:name="android.permission.VIBRATE"/>
        <!-- 移除自动引入的AD_ID权限 -->
        <uses-permission android:name="com.google.android.gms.permission.AD_ID" tools:node="remove"/>
        
        <application
            android:label="xxxx"
            android:name="${applicationName}"
            android:requestLegacyExternalStorage="true"
            android:icon="@mipmap/ic_launcher">
            <activity
                android:name=".MainActivity"
                android:exported="true"
                android:launchMode="singleTop"
                android:theme="@style/LaunchTheme"
                android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
                android:hardwareAccelerated="true"
                android:windowSoftInputMode="adjustResize">
                <meta-data
                  android:name="io.flutter.embedding.android.NormalTheme"
                  android:resource="@style/NormalTheme"
                  />
                <intent-filter>
                    <action android:name="android.intent.action.MAIN"/>
                    <category android:name="android.intent.category.LAUNCHER"/>
                </intent-filter>
            </activity>
            <meta-data
                android:name="flutterEmbedding"
                android:value="2" />
        </application>
    </manifest>
    

    tools:node="remove"会强制移除该权限,不受依赖库的自动引入影响。

  2. 验证权限是否已移除
    构建应用后,可通过以下命令查看合并后的权限列表,确认AD_ID权限已消失:

    flutter build apk --release
    aapt dump permissions build/app/outputs/apk/release/app-release.apk
    
  3. 可选:排查依赖来源
    若想定位是哪个依赖引入了AD_ID权限,可运行以下命令查看完整依赖树:

    flutter pub deps --tree
    

    查找包含play-services-ads或ads相关的依赖节点即可确定来源。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 02:55:06