Flutter集成Google Ads与Firebase版本冲突问题求助
解决Flutter中AdMob与Firebase的版本冲突问题
问题根源
手动添加高版本play-services-ads库时,与admob_flutter内置的Ads依赖、Firebase相关依赖(如firebase_messaging)存在版本兼容性冲突,导致应用启动崩溃;而低版本19.2.0因与现有Firebase依赖版本匹配,所以能正常运行。
解决方案
1. 用依赖约束统一版本,避免手动重复添加
不要直接在app/build.gradle中添加implementation 'com.google.android.gms:play-services-ads:21.5.0',而是通过resolutionStrategy强制统一Google Play Services和Firebase相关库的版本,确保兼容性:
android { // 保留原有配置 configurations.all { resolutionStrategy { // 强制使用指定版本的Ads库 force 'com.google.android.gms:play-services-ads:21.5.0' // 用Firebase BOM管理Firebase依赖版本,确保与Ads库兼容 force 'com.google.firebase:firebase-bom:29.0.0' } } }
2. 用Firebase BOM管理Firebase依赖
在app/build.gradle的dependencies块中引入Firebase BOM,无需再单独指定Firebase库的版本,BOM会自动维护版本兼容性:
dependencies { // 其他依赖 implementation platform('com.google.firebase:firebase-bom:29.0.0') implementation 'com.google.firebase:firebase-messaging' // 无需手动添加firebase_core版本,BOM会统一管理 }
3. 确认依赖树,排查重复依赖
运行以下命令查看项目依赖树,确认admob_flutter是否已内置play-services-ads:
flutter pub deps
如果admob_flutter已包含该依赖,手动添加会导致重复依赖冲突,此时用步骤1的resolutionStrategy强制统一版本即可。
4. 彻底清理并重建项目
执行以下操作清除缓存并重新构建:
- 运行
flutter clean - 删除
android/.gradle文件夹(可选,彻底清理gradle缓存) - 运行
flutter pub get - 重新编译运行应用
内容的提问来源于stack exchange,提问作者Jaydeep Vyas
相关产品推荐
相关产品推荐

