flutterdartflutter-dependenciesflutter-pubflutter-pubspec

Flutter: Version solving failed in pub get


Situation

I just cloned a Flutter project in which my colleagues are working on, but I cannot make it work on my laptop. I am using a Macbook Pro, the same as them. It works for them, but not for me.

The problem is at flutter pub get or flutter upgrade. This is the error:

Resolving dependencies...

Note: intl is pinned to version 0.18.1 by flutter_localizations from the flutter SDK. See https://dart.dev/go/sdk-version-pinning for details.

Because trooms depends on flutter_localizations from sdk which depends on intl 0.18.1, intl 0.18.1 is required. So, because trooms depends on intl ^0.17.0, version solving failed.

Process finished with exit code 1

And these are my dependencies:

name: trooms
description: Web, Android and iOS App for TROOMS.
publish_to: 'none' 
version: 1.0.0+1

environment:
  sdk: ">=2.12.0 <3.0.0"

dependencies:
  flutter:
    sdk: flutter
  flutter_localizations:
    sdk: flutter
    
  cupertino_icons: ^1.0.4
  intl: 0.18.1
  json_serializable: ^6.1.6
  json_annotation: ^4.4.0
  firebase_core: ^2.0.3
  firebase_auth: ^4.1.3
  cloud_firestore: ^4.1.0
  firebase_analytics: ^10.0.6
  firebase_crashlytics: ^3.0.6
  firebase_performance: ^0.9.0+6
  firebase_storage: ^11.0.6
  image_picker: ^0.8.6
  flutter_image_slideshow: ^0.1.4
  cloud_functions: ^4.0.5
  logging: ^1.0.2
  flutter_riverpod: ^2.1.1
  flutter_launcher_icons: ^0.11.0
  font_awesome_flutter: ^10.1.0
  flutterfire_ui: ^0.4.0+2
  url_launcher: ^6.0.20
  beamer: ^1.5.3
  q_form:
    git:
      url: //url
  flutter_native_splash: ^2.1.5
  date_time_picker: ^2.1.0
  table_calendar: ^3.0.5
  flutter_beacon: ^0.5.1
  google_fonts: ^3.0.1

dev_dependencies:
  flutter_app_name: ^0.1.1
  build_runner: ^2.1.10
  fake_cloud_firestore: ^2.0.1
  firebase_auth_mocks: ^0.9.1
  firebase_storage_mocks: ^0.6.0+1
  flutter_test:
    sdk: flutter
  flutter_lints: ^2.0.1
  get: ^4.6.1

flutter_app_name:
  name: "TROOMS"

flutter_icons:
  android: true
  ios: true
  remove_alpha_ios: true
  image_path: "assets/icon/trooms-ulm-logo.png"
  adaptive_icon_background: #ffffff
  flutter_lints: ^1.0.4

flutter:
  uses-material-design: true
  generate: true
  assets:
  - assets/
  - assets/icon/

First attempted solution

I tried changing the SDK to the same as them but it did not work. I can't downgrade Flutter to their exact same version, for some reason:

~ TROOMS % flutter downgrade v3.7.7

Downgrade flutter to version 3.3.9

? [y|n]:

Second attempted solution

Then, I changed the intl package version to the one required: intl: 0.18.1. This is the new error with that:

Resolving dependencies...

Because date_time_picker 2.1.0 depends on intl ^0.17.0 and no versions of date_time_picker match >2.1.0 <3.0.0, date_time_picker ^2.1.0 requires intl ^0.17.0. So, because trooms depends on both intl 0.18.1 and date_time_picker ^2.1.0, version solving failed.

Process finished with exit code 1

Third attempted solution

I also tried changing flutter_localizations to any like this

dependencies:
  flutter:
    sdk: flutter
  flutter_localizations: any

But it's also not accepted:

Resolving dependencies...

Because trooms depends on flutter_localizations any which doesn't exist (could not find package flutter_localizations at https://pub.dev), version solving failed.

Process finished with exit code 69

I did the same for intl. Same output.

Questions

So it seems that the packages date_time_picker and flutter_localizations both depend on different versions of intl, which is not compatible and that's why it fails. So, how can I solve packages having different pinned versions of the same dependency?

BUT why I'm confused is because the exact same code does work for my colleages, having the same dependencies, although we do have different SDKs. Could the SDK have something to do?


Solution

  • I think from Flutter >= 3.10 (do some research yourself to be sure), flutter_localizations require intl >= 0.18.0. So there's 2 solutions: