Android Manifest合并报错:tools:replace="android:resource"方案无效
解决Android Manifest合并中AD_SERVICES_CONFIG冲突的正确方法
错误根源
你的项目主Manifest与某个依赖库的Manifest重复定义了android.adservices.AD_SERVICES_CONFIG属性,分别指向@xml/gma_ad_services_config和@xml/ga_ad_services_config,导致Manifest合并时出现冲突。
正确修复操作
错误提示明确要求将tools:replace="android:resource"添加到**<property>元素**上,而非<manifest>或<application>标签,之前的操作位置错误,因此未生效。具体步骤:
- 打开主AndroidManifest.xml,定位到错误提示对应的行(第91-92行)的
<property>标签,它的原始形式大概是:
<property android:name="android.adservices.AD_SERVICES_CONFIG" android:resource="@xml/gma_ad_services_config" />
- 给该
<property>标签添加tools:replace="android:resource"属性,修改后代码如下:
<property android:name="android.adservices.AD_SERVICES_CONFIG" android:resource="@xml/gma_ad_services_config" tools:replace="android:resource" />
- 如果主Manifest中没有显式定义这个
<property>标签,需要手动在<application>标签内部添加它(指定你想要保留的resource值),同时附上replace属性,以此覆盖依赖库自带的配置。
验证
重新构建项目,Manifest合并冲突即可解决。
内容的提问来源于stack exchange,提问作者Frankmango
相关产品推荐
相关产品推荐

