运行ionic cordova run android时遇com.google.android.gms依赖冲突错误
解决Cordova项目中Firebase/Play Services依赖版本冲突的问题
先帮你理清楚当前遇到的几个核心问题,再一步步给出解决方案:
核心问题拆解
你现在面临三个层面的问题:
- 依赖版本冲突:
com.google.android.gms:play-services-measurement-base被多个依赖请求了16.5.0和16.4.0两个版本,Gradle解析时出现冲突导致构建失败。 - 插件卸载异常:尝试卸载旧版
cordova-plugin-firebase时,因为AndroidManifest.xml文件丢失,导致卸载流程中断。 - 手动指定版本后找不到依赖:修改
project.properties指定新版本后,项目中仍有其他插件硬编码了旧版本11.0.4的Firebase库,导致Gradle搜索不到对应版本的资源。
分步解决步骤
1. 先修复插件卸载的Manifest丢失问题
这个错误是因为平台文件损坏或卸载过程中Manifest被意外删除,先重新生成Android平台文件:
- 执行以下命令移除并重新添加稳定版本的Android平台:
cordova platform remove android cordova platform add android@9.0.0 # 指定稳定版本可避免最新版本的兼容坑 - 重新生成平台后,再执行卸载命令:
cordova plugin remove cordova-plugin-firebase
2. 安装修复版本的Firebase插件
卸载完成后,安装你提到的已经修复版本冲突的分支插件:
cordova plugin add https://github.com/dpa99c/cordova-plugin-firebase#GH-1057-April-05-android-build-issue
这个分支已经统一了Firebase和Play Services的依赖版本,能直接解决版本冲突问题。
3. 强制统一依赖版本(备选方案,若上述步骤仍有冲突)
如果安装修复插件后还是出现版本不一致的情况,可以通过Cordova的自定义Gradle配置强制统一所有版本:
- 在
platforms/android目录下创建build-extras.gradle文件,写入以下内容:configurations.all { resolutionStrategy { // 强制统一所有Google相关依赖版本 force 'com.google.android.gms:play-services-base:16.1.0' force 'com.google.android.gms:play-services-measurement-base:16.5.0' force 'com.google.firebase:firebase-core:16.0.8' force 'com.google.firebase:firebase-messaging:17.5.0' force 'com.google.firebase:firebase-config:16.4.1' force 'com.google.firebase:firebase-perf:16.2.4' } } - 这个配置会覆盖所有插件的依赖声明,让Gradle强制使用你指定的版本,彻底解决冲突。
4. 验证依赖树确认修复
最后执行命令查看依赖树,确保所有版本统一:
./gradlew :app:dependencies
搜索com.google.android.gms和com.google.firebase相关条目,确认没有版本不一致的情况。
额外排查点
- 如果还是出现“找不到版本”的错误,打开Android Studio的SDK Manager,确保
Google Repository已经更新到最新版本,旧版本的仓库可能没有你指定的新版本依赖。 - 尽量不要手动修改
project.properties里的依赖版本,因为Cordova插件会自动管理这些配置,手动修改容易导致插件和依赖版本不匹配,推荐用build-extras.gradle的方式来强制版本。
内容的提问来源于stack exchange,提问作者J.Do
相关产品推荐
相关产品推荐

