Flutter Android构建报错:Manifest合并失败解决方案咨询
解决Flutter Android构建中的Manifest合并冲突问题
针对你遇到的AD_SERVICES_CONFIG资源冲突问题,以下是几种可行的解决方法:
方法1:正确配置AndroidManifest.xml的tools替换属性
你之前出现解析错误大概率是因为未在Manifest中声明tools命名空间。按以下步骤修改:
- 在根
<manifest>标签中添加tools命名空间:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" package="你的应用包名">
- 在
<application>标签内添加冲突的<property>元素,并加上tools:replace属性:
<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资源,覆盖来自其他依赖的冲突配置。
方法2:统一Google Play Services库版本
版本不一致是这类冲突的常见原因,你可以强制所有相关库使用同一版本:
在项目级的android/build.gradle中添加版本解析策略:
allprojects { configurations.all { resolutionStrategy { force 'com.google.android.gms:play-services-measurement-api:23.0.0' force 'com.google.android.gms:play-services-ads-lite:23.0.0' } } }
如果使用AGP 8.0+的版本目录(version catalog),则在android/settings.gradle中添加:
dependencyResolutionManagement { resolutionStrategy { force 'com.google.android.gms:play-services-measurement-api:23.0.0' force 'com.google.android.gms:play-services-ads-lite:23.0.0' } }
方法3:排除冲突的依赖模块
如果不需要play-services-measurement-api,可以直接从依赖中排除它:
在android/app/build.gradle的dependencies块中添加排除规则:
dependencies { implementation 'com.google.android.gms:play-services-ads:23.0.0' // 排除google_mobile_ads带来的冲突模块 implementation('com.google.android.gms:play-services-ads-lite:23.0.0') { exclude group: 'com.google.android.gms', module: 'play-services-measurement-api' } }
内容的提问来源于stack exchange,提问作者Preem Palver2
相关产品推荐
相关产品推荐

