Flutter: не удалось решить версию в pub get

Ситуация

Я только что клонировал проект Flutter, над которым работают мои коллеги, но не могу заставить его работать на своем ноутбуке. Я использую Macbook Pro, такой же, как и они. У них это работает, но не у меня.

Проблема вflutter pub getилиflutter upgrade. Это ошибка:

Разрешение зависимостей...

Примечание: intl привязан к версии 0.18.1 с помощью flutter_localizations из flutter SDK. Подробности см. на https://dart.dev/go/sdk-version-pinning .

Поскольку trooms зависит от flutter_localizations из SDK, который зависит от intl 0.18.1, требуется intl 0.18.1. Итак, поскольку trooms зависит от intl ^0.17.0, определение версии не удалось.

Процесс завершен с кодом завершения 1

И это мои зависимости:

      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/

Первая попытка решения

Я пробовал менять SDK на такой же, как у них, но это не сработало. По какой-то причине я не могу понизить версию Flutter до точно такой же версии:

       ~ TROOMS % flutter downgrade v3.7.7

Downgrade flutter to version 3.3.9

? [y|n]:

Вторая попытка решения

Затем я изменил версию пакета intl на необходимую:intl: 0.18.1. Это новая ошибка:

Разрешение зависимостей...

Поскольку date_time_picker 2.1.0 зависит от intl ^0.17.0 и ни одна версия date_time_picker не соответствует >2.1.0 <3.0.0, date_time_picker ^2.1.0 требует intl ^0.17.0. Итак, поскольку trooms зависит как от intl 0.18.1, так и от date_time_picker ^2.1.0, решение версии не удалось.

Процесс завершен с кодом завершения 1

Третья попытка решения

Я также пробовал менять на что-нибудь подобное

      dependencies:
  flutter:
    sdk: flutter
  flutter_localizations: any

Но также не принято:

Разрешение зависимостей...

Поскольку трумы зависят от несуществующих flutter_localizations (не удалось найти пакет flutter_localizations на https://pub.dev), определение версии не удалось.

Процесс завершен с кодом выхода 69

Я сделал то же самое дляintl. Тот же вывод.

Вопросы

Так что похоже, что пакетыdate_time_pickerиflutter_localizations оба зависят от разных версий intl , которые несовместимы и поэтому не работают. Итак, как мне решить проблему с пакетами, имеющими разные закрепленные версии одной и той же зависимости?

НО меня смущает то, что у моих коллег работает один и тот же код , имеющий одинаковые зависимости, хотя у нас разные SDK. Может ли SDK чем-то заняться?

1 ответ

Я думаю, что начиная с Flutter >= 3.10 (чтобы быть уверенным, проведите небольшое исследование), flutter_localizations требует intl >= 0.18.0 . Итак, есть 2 решения:

  • если у date_time_picker есть версия, использующая более новую версию Flutter, используйте ее,
  • понизьте ваш Flutter SDK до версии, поддерживающей intl 0.17.0.
Другие вопросы по тегам