Flutter项目pubspec.yaml依赖错误,请求代码修改建议
Flutter依赖版本兼容问题修复方案
问题描述
从GitHub下载hydrabadi_rishte项目后,执行flutter pub get时出现版本兼容错误,原pubspec.yaml内容如下:
name: hydrabadi_rishte description: A new Flutter project. #version: 1.0.1+2 version: 1.0.2+3 environment: sdk: ">=2.18.6 <3.0.0" flutter: ">=2.12.0" dependencies: flutter: sdk: flutter dropdown_button2: timer_button: ^2.0.0 dropdownfield: ^1.0.0 custom_radio_grouped_button: any checkbox_grouped: ^1.8.0 dropdown_plus: http: pin_entry_text_field: 0.1.4 pinput: ^2.2.8 timer_count_down: flutter_countdown_timer: ^4.1.0 flutter_search_bar: ^2.1.0 quds_popup_menu: 0.0.1+1 like_button: ^2.0.4 rflutter_alert: ^1.0.3 # custom_check_box: ^0.0.4 dropdown_search: fluttertoast: ^8.0.9 shared_preferences: ^2.0.15 sizer: ^2.0.15 animated_splash_screen: ^1.2.0 file_picker: ^3.0.0 share: ^2.0.4 image_cropper: ^3.0.0 carousel_slider: ^4.1.1 smooth_page_indicator: ^1.0.0+2 image_picker: ^0.8.6 email_validator: ^2.0.1 flutter_animate: ^3.1.0 flutter_svg: ^2.0.5 razorpay_flutter: ^1.2.6 mailer: ^5.0.0 video_player: ^2.3.8 chewie: ^1.0.2 flutter_rating_bar: ^4.0.0 get: cupertino_icons: ^1.0.2 url_launcher: ^6.1.11 dev_dependencies: flutter_test: sdk: flutter flutter_lints: ^2.0.0 flutter: uses-material-design: true assets: - assets/
错误原因
- 多个依赖未指定版本号(如
dropdown_button2、dropdown_plus等),pub会尝试拉取最新版本,易与当前SDK或其他依赖冲突 - 部分依赖版本过旧,与指定的SDK环境(
>=2.18.6 <3.0.0)不兼容
修改后的pubspec.yaml代码
name: hydrabadi_rishte description: A new Flutter project. #version: 1.0.1+2 version: 1.0.2+3 environment: sdk: ">=2.18.6 <3.0.0" flutter: ">=3.3.0" # 提升Flutter最低版本,适配更多依赖 dependencies: flutter: sdk: flutter dropdown_button2: ^2.1.0 # 补全兼容版本 timer_button: ^2.0.0 dropdownfield: ^1.0.0 custom_radio_grouped_button: ^1.4.2 # 替换any为明确兼容版本 checkbox_grouped: ^1.8.0 dropdown_plus: ^0.1.5 # 补全兼容版本 http: ^0.13.5 # 补全兼容版本 pin_entry_text_field: 0.1.4 pinput: ^2.2.8 timer_count_down: ^2.2.3 # 补全兼容版本 flutter_countdown_timer: ^4.1.0 flutter_search_bar: ^2.1.0 quds_popup_menu: 0.0.1+1 like_button: ^2.0.4 rflutter_alert: ^1.0.3 # custom_check_box: ^0.0.4 dropdown_search: ^5.0.6 # 补全兼容版本 fluttertoast: ^8.0.9 shared_preferences: ^2.0.15 sizer: ^2.0.15 animated_splash_screen: ^1.2.0 file_picker: ^5.2.10 # 升级到兼容版本 share: ^2.0.4 image_cropper: ^3.0.0 carousel_slider: ^4.1.1 smooth_page_indicator: ^1.0.0+2 image_picker: ^0.8.7+4 # 升级到兼容版本 email_validator: ^2.0.1 flutter_animate: ^3.1.0 flutter_svg: ^2.0.5 razorpay_flutter: ^1.2.6 mailer: ^5.0.0 video_player: ^2.6.1 # 升级到兼容版本 chewie: ^1.3.4 # 升级到兼容版本 get: ^4.6.5 # 补全兼容版本 cupertino_icons: ^1.0.2 url_launcher: ^6.1.11 dev_dependencies: flutter_test: sdk: flutter flutter_lints: ^2.0.0 flutter: uses-material-design: true assets: - assets/
修改说明
- 补全所有未指定版本的依赖,选择与当前SDK兼容的稳定版本
- 升级
file_picker、image_picker、video_player、chewie等旧版本依赖,解决版本冲突 - 提升Flutter最低版本到
3.3.0,确保与更多依赖兼容 - 把
custom_radio_grouped_button: any替换为明确版本^1.4.2,避免拉取不兼容的最新版本
修改后执行flutter pub get即可解决版本兼容问题。
内容的提问来源于stack exchange,提问作者Sanjeet Chukka
相关产品推荐
相关产品推荐

