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

Android构建报错:Manifest合并失败,需添加tools:replace="android:resource"到<property>元素

Android构建报错:Manifest合并失败,需添加tools:replace="android:resource"到元素

嘿,这个Manifest合并冲突我之前也碰到过,给你两个靠谱的解决办法:

方法一:按照错误提示修改AndroidManifest.xml

这是最直接的解决方式,步骤如下:

  1. 首先确认你的AndroidManifest.xml根标签<manifest>里已经引入了tools命名空间,如果没有就加上:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="你的应用包名">
  1. 在Manifest的<application>标签内添加(或者如果已经存在就修改)对应的<property>元素,加上tools:replace="android:resource"属性,让Gradle明确知道要覆盖冲突的资源配置:
<application>
    <!-- 其他原有代码 -->
    <property
        android:name="android.adservices.AD_SERVICES_CONFIG"
        android:resource="@xml/ga_ad_services_config" <!-- 也可以换成@gma_ad_services_config,根据你想保留的资源选择 -->
        tools:replace="android:resource" />
</application>

出现这个错误的核心原因是:Firebase的play-services-measurement-api和AdMob的play-services-ads-lite两个库,在各自的Manifest里都声明了同一个AD_SERVICES_CONFIG属性,但指向了不同的XML资源,导致合并时冲突。加上tools:replace就是告诉构建工具,用你指定的这个资源来覆盖其他库的配置。

方法二:调整依赖版本(可选)

如果你不想修改Manifest,也可以尝试调整依赖版本来解决兼容性问题:

  • 你当前用的Firebase BOM是33.1.0,对应的play-services-ads版本可以试试和BOM管理的版本保持一致。不过因为Firebase BOM主要管理Firebase相关依赖,AdMob的版本可能需要单独匹配。你可以尝试升级或降级play-services-ads的版本,看看是否能避免这个冲突。不过相对来说,方法一更稳妥直接。

备注:内容来源于stack exchange,提问作者Daniele B

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.17 08:50:33