运行Flutter应用时出现重复类禁止错误,该如何解决?
解决Flutter中Google Play Services测量库重复类问题
我之前也踩过一模一样的坑!这个错误完全是因为Firebase相关依赖拉取了不同版本的Google Play Services测量库,导致类重复冲突。不用死磕找重复依赖,按下面的步骤来就能快速搞定:
步骤1:统一Firebase依赖版本
你的pubspec.yaml里Firebase依赖版本太杂乱(比如firebase_core是固定0.5.0,其他用^模糊匹配),这会让底层Android依赖自动拉取不兼容的版本。建议把所有Firebase相关依赖调整为互相兼容的统一版本,修改后的pubspec依赖示例如下:
firebase_core: 0.5.0 cloud_firestore: 0.14.0+2 # 和firebase_core 0.5.0适配的稳定版本 firebase_storage: 4.0.0 firebase_auth: 0.18.0 firebase_messaging: 7.0.2 google_sign_in: ^4.5.6 location: 3.0.2 google_maps_flutter: ^0.5.27+3 font_awesome_flutter: 8.4.0 geolocator: ^5.1.2 cupertino_icons: ^0.1.3 appodeal_flutter: ^0.5.0 intro_slider: ^2.3.3 shared_preferences: ^0.5.12 translator: ^0.1.5 loading: ^1.0.2 permission_handler: ^5.0.1+1 beauty_textfield: ^0.0.1 snaplist: ^0.1.8 image_picker: ^0.6.7+11 geoflutterfire: 2.2.1 path_provider: ^1.6.18 image: ^2.1.18 uuid: ^2.2.2 datetime_picker_formfield: ^1.0.0 share: ^0.6.5+2
步骤2:强制指定测量库版本(步骤1无效时用)
如果统一Firebase版本后还是报错,直接在Android项目里强制所有依赖使用同一个版本的测量库:
打开android/app/build.gradle,在android代码块中添加以下配置:
android { // 保留你原有的其他配置... configurations.all { resolutionStrategy { force 'com.google.android.gms:play-services-measurement-base:17.5.0' } } }
这个配置会强制所有依赖都使用17.5.0版本的测量库,从根源上解决版本冲突导致的重复类问题。
步骤3:清理缓存并重新构建
最后执行以下命令清理缓存、更新依赖并重新运行项目:
flutter clean flutter pub get flutter run
要是你好奇具体是哪个依赖引入了旧版本的测量库,可以运行flutter pub deps查看完整的依赖树,找到对应的依赖后针对性调整,但上面的方法已经能解决绝大多数情况了。
内容的提问来源于stack exchange,提问作者Acorcdev
相关产品推荐
相关产品推荐

