You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

添加Admob后遭遇Android Manifest合并失败错误,寻求解决方案

解决添加AdMob后「unable to merge android manifest」错误的常见方案

我之前帮朋友排查过一模一样的问题,给你整理几个最容易踩坑的点和解决办法,你可以挨个试试:

1. 权限/组件重复声明冲突

AdMob的SDK会自动在Manifest里注入一些必要的权限(比如INTERNETACCESS_NETWORK_STATE)和组件(比如广告相关的<activity>),如果你的项目Manifest里已经手动加过这些内容,就会触发合并冲突。

  • 解决步骤:
    • 打开你的AndroidManifest.xml,检查有没有和AdMob重复的权限或组件标签;
    • 如果有重复,直接删掉项目里手动添加的那部分;
    • 要是不想删除,可以在冲突的标签里加上tools:replace="android:name"(记得先在Manifest根标签里引入xmlns:tools="http://schemas.android.com/tools")。

2. Google服务依赖版本不兼容

AdMob属于Google Play Services生态的一部分,如果项目里其他Google服务依赖(比如play-services-locationplay-services-analytics)和AdMob SDK版本不一致,很容易导致Manifest合并失败。

  • 解决步骤:
    • 打开Module级别的build.gradle文件;
    • 推荐用play-services-bom来统一管理所有Google服务的版本,这样不用逐个指定版本号,避免冲突:
      dependencies {
          implementation platform('com.google.android.gms:play-services-bom:20.1.0')
          implementation 'com.google.android.gms:play-services-ads'
          // 其他Google服务依赖直接写包名,不用加版本号
          implementation 'com.google.android.gms:play-services-location'
      }
      
    • 如果不想用BOM,就确保所有com.google.android.gms:play-services-*开头的依赖版本号完全一致。

3. Manifest合并规则被禁用

有些项目可能会在配置里意外禁用了Manifest自动合并功能,这也会导致报错。

  • 解决步骤:
    • 检查gradle.properties文件里有没有android.enableManifestMerger=false,如果有改成true
    • 或者在Module的build.gradle里明确开启合并:
      android {
          packagingOptions {
              mergeManifests = true
          }
      }
      

4. 第三方库与AdMob冲突

除了AdMob本身,项目里的其他第三方库(比如广告中介、统计工具)也可能修改Manifest,和AdMob的配置产生冲突。

  • 解决步骤:
    • 打开你的AndroidManifest.xml,点击底部的Merged Manifest标签,这里会展示最终合并后的Manifest,并且用红色标注冲突的位置;
    • 根据标注的冲突信息,调整对应的标签,比如用tools:replace覆盖冲突的属性,或者删除第三方库中不必要的Manifest配置。

如果以上方法都没解决问题,你可以把Merged Manifest里的冲突详情贴出来,这样能更精准地定位问题~

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

火山引擎 最新活动