AGP 8.3.0 的 Manifest 合并失败解决方案
问题描述
升级到 Android Gradle 插件 (AGP) 8.3.0 后,构建时会出现 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).
Suggestion: add 'tools:replace="android:resource"' to <property> element at AndroidManifest.xml to override.此错误发生在库依赖的清单文件合并过程中,项目自身的 AndroidManifest.xml 通常不包含 AD_SERVICES_CONFIG 属性。若不解决,将导致应用无法编译运行。
根本原因
谷歌服务的库文件存在冲突——play-services-measurement-api 和 play-services-ads-lite 都声明了相同的属性 android.adservices.AD_SERVICES_CONFIG,但指向了不同的资源文件:
@xml/ga_ad_services_config(Analytics 库)@xml/gma_ad_services_config(Ads 库)
AGP 8.3.0 增强了清单合并检验规则,识别到这一冲突并终止构建。
解决方案
✅ 推荐方法:清单文件修复
修改应用的 AndroidManifest.xml 文件,强制指定统一资源:
在
<manifest>标签添加tools命名空间(如未设置):xml<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools">在
<application>标签内添加属性覆盖:xml<application> ... <property android:name="android.adservices.AD_SERVICES_CONFIG" android:resource="@xml/gma_ad_services_config" tools:replace="android:resource" /> ... </application>
选择资源文件的依据
此处选择 gma_ad_services_config(来自 Ads 库)是因为它同时支持Attribution API和Topics API,而 ga_ad_services_config 仅支持 Attribution API。
🔄 兼容方案:降级适配
若项目急需发布,可降级组件版本:
// 方案1:降级 AGP(gradle.properties)
androidGradlePluginVersion=8.2.2
// 方案2:调整 Ads 库版本(app/build.gradle)
implementation "com.google.android.gms:play-services-ads:22.2.0"兼容方案风险
降级可能引发其他未知兼容问题,建议仅作临时措施
⬆️ 终极方案:升级谷歌服务库
在支持 AGP 8.3.0+ 的较新依赖中,谷歌已修复该问题:
// AGP 8.3.0+ 推荐搭配
implementation "com.google.android.gms:play-services-ads:24.0.0"补充操作
若使用广告功能,请在 Application 类初始化 SDK:
public class MyApp extends Application {
@Override
public void onCreate() {
super.onCreate();
MobileAds.initialize(this);
}
}版本兼容信息
| 组件 | 已修复问题的版本 |
|---|---|
| AGP | 8.8.2+ |
| play-services-ads | 24.0.0+ |
根据 2025 年实际环境测试,AGP 8.8.2 + ads 24.0.0 组合已彻底解决此冲突,建议优先升级
总结建议
- 项目开发阶段 → 使用清单文件覆盖方案(推荐使用
gma_ad_services_config) - 新版本适配阶段 → 升级至
play-services-ads:24.0.0+ - 紧急发布场景 → 临时降级至兼容版本组合
- 所有解决方案均需确保
<manifest>中包含xmlns:tools声明