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

Android Manifest合并失败求助:AD_SERVICES_CONFIG资源冲突

解决Manifest合并冲突:AD_SERVICES_CONFIG资源重复

问题描述

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:22.1.2] AndroidManifest.xml:32:13-58
is also present at [com.google.android.gms:play-services-ads-lite:22.5.0] AndroidManifest.xml:84:13-59 value=(@xml/gma_ad_services_config).
Suggestion: add 'tools:replace="android:resource"' to <property> element at AndroidManifest.xml to override.

已按提示添加tools:replace属性,且已声明xmlns:tools="http://schemas.android.com/tools",但错误仍未解决。当前项目依赖com.google.android.gms:play-services-ads:22.5.0,AndroidManifest已配置广告应用ID的meta-data。


解决方法

1. 显式声明冲突<property>并覆盖资源

在AndroidManifest.xml的<application>标签内,直接添加冲突的property元素,通过tools:replace指定覆盖android:resource属性:

<application ...>
    <!-- 已有的广告ID配置 -->
    <meta-data
        android:name="com.google.android.gms.ads.APPLICATION_ID"
        android:value="ca-app-pub-XXXXXXXXXXXXXXXX~XXXXXXXXXX"/>

    <!-- 新增该行覆盖AD_SERVICES_CONFIG -->
    <property
        android:name="android.adservices.AD_SERVICES_CONFIG"
        android:resource="@xml/gma_ad_services_config"
        tools:replace="android:resource"/>
</application>

确保manifest根元素已包含tools命名空间:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="你的应用包名">

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

冲突源于play-services-measurement-api(22.1.2)与play-services-ads-lite(22.5.0)版本不一致,强制统一版本可消除冲突:

在build.gradle.kts的dependencies块中添加版本约束:

dependencies {
    implementation("com.google.android.gms:play-services-ads:22.5.0")

    // 强制measurement系列依赖与ads版本对齐
    constraints {
        implementation("com.google.android.gms:play-services-measurement-api:22.5.0")
        implementation("com.google.android.gms:play-services-measurement-base:22.5.0")
    }
}

更推荐使用Google Play Services BOM统一管理所有服务版本,避免后续版本冲突:

dependencies {
    // 引入BOM,所有Google服务依赖自动使用统一版本
    implementation(platform("com.google.android.gms:play-services-bom:20.1.0")) // 替换为最新可用版本

    // 依赖无需指定版本号
    implementation("com.google.android.gms:play-services-ads")
}

3. 清理缓存并重建项目

修改配置后,清理旧构建缓存并重新编译:

  • Android Studio操作:Build → Clean Project → Rebuild Project
  • 命令行执行:
./gradlew clean assembleDebug

4. 排查并排除冲突依赖

若上述方法无效,通过依赖树找出引入旧版本measurement-api的来源:

./gradlew dependencies

找到对应依赖后,排除其中的冲突模块:

implementation("冲突依赖的组名:依赖名:版本") {
    exclude(group = "com.google.android.gms", module = "play-services-measurement-api")
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 13:40:12