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

升级AGP 8.3.0后Manifest合并冲突,求AdMob非抑制类解决方案

解决AGP 8.3.0升级后AdMob相关Manifest合并冲突问题

问题描述

Manifest merger failed : Attribute property#android.adservices.AD_SERVICES_CONFIG@resource
value=(@xml/ga_ad_services_config) from [com.google.android.gms:play-services-measurement-api:21.5.1]
AndroidManifest.xml:32:13-58 is also present at [com.google.android.gms:play-services-ads-lite:22.6.0]
AndroidManifest.xml:92:13-59 value=(@xml/gma_ad_services_config).

系统建议用tools:replace="android:resource"覆盖,但不想采用这种抑制方法,以下是AdMob相关的根源解决方案:

解决方案

1. 统一Google Play服务依赖版本

冲突源于不同依赖库的AD_SERVICES_CONFIG资源不一致,强制所有Google Play服务相关依赖使用同一版本:
在项目根目录的build.gradle(或build.gradle.kts)中添加版本约束:

// Groovy语法
allprojects {
    configurations.all {
        resolutionStrategy {
            force 'com.google.android.gms:play-services-measurement-api:22.6.0'
            force 'com.google.android.gms:play-services-ads-lite:22.6.0'
            // 其他Google Play服务相关依赖也统一到该版本
        }
    }
}
// Kotlin语法
allprojects {
    configurations.all {
        resolutionStrategy {
            force("com.google.android.gms:play-services-measurement-api:22.6.0")
            force("com.google.android.gms:play-services-ads-lite:22.6.0")
        }
    }
}

选择22.6.0是为了和play-services-ads-lite版本对齐,确保广告相关依赖版本一致,消除资源冲突。

2. 移除冗余的Measurement依赖

如果项目没有直接使用Firebase Analytics或Measurement功能,可以排除play-services-measurement-api依赖:
在App模块的build.gradle中修改AdMob依赖:

// Groovy语法
implementation('com.google.android.gms:play-services-ads-lite:22.6.0') {
    exclude group: 'com.google.android.gms', module: 'play-services-measurement-api'
}
// Kotlin语法
implementation("com.google.android.gms:play-services-ads-lite:22.6.0") {
    exclude(group = "com.google.android.gms", module = "play-services-measurement-api")
}

注意:如果项目依赖Firebase Analytics,此方法不适用,需采用第一种方案统一版本。

3. 手动配置统一的AD_SERVICES_CONFIG资源

创建统一的ad_services_config.xml文件放在res/xml目录下,合并ga_ad_services_config和gma_ad_services_config的配置内容,然后在App的AndroidManifest.xml中显式声明:

<property
    android:name="android.adservices.AD_SERVICES_CONFIG"
    android:resource="@xml/ad_services_config" />

这种方法需要确保合并后的配置同时满足Measurement和AdMob的需求,适合有自定义配置需求的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 15:22:06