Flutter 版本解决失败 firebase_auth ^1.4.1 和 http ^0.12.2
Posted
技术标签:
【中文标题】Flutter 版本解决失败 firebase_auth ^1.4.1 和 http ^0.12.2【英文标题】:Flutter version solving failed firebase_auth ^1.4.1 and http ^0.12.2 【发布时间】:2021-10-30 21:41:05 【问题描述】:我是 Flutter 的新手。
我试图在我的颤振项目中添加 http: ^0.12.2
包,现有的 firebase
包发生冲突,我无法添加 http 包。
我尝试将频道更改为 dev。
还尝试添加 http ^0.10.0
的旧包,但问题仍然存在。
这是我遇到的错误
Running "flutter pub get" in fsp...
Because firebase_auth_web 1.3.1 depends on http_parser ^4.0.0 and no versions of firebase_auth_web match >1.3.1 <2.0.0, firebase_auth_web ^1.3.1 requires http_parser ^4.0.0.
And because http >=0.11.3+17 <0.13.0-nullsafety.0 depends on http_parser >=0.0.1 <4.0.0, http >=0.11.3+17 <0.13.0-nullsafety.0 is incompatible with firebase_auth_web ^1.3.1.
And because firebase_auth 1.4.1 depends on firebase_auth_web ^1.3.1 and no versions of firebase_auth match >1.4.1 <2.0.0, http >=0.11.3+17 <0.13.0-nullsafety.0 is incompatible with firebase_auth ^1.4.1.
So, because match11 depends on both firebase_auth ^1.4.1 and http ^0.12.2, version solving failed.
pub get failed (1; So, because match11 depends on both firebase_auth ^1.4.1 and http ^0.12.2, version solving failed.)
exit code 1
以下是我的pubspec.yaml
文件
# The following line prevents the package from being accidentally published to
# pub.dev using `pub publish`. This is preferred for private packages.
publish_to: 'none' # Remove this line if you wish to publish to pub.dev
# The following defines the version and build number for your application.
# A version number is three numbers separated by dots, like 1.2.43
# followed by an optional build number separated by a +.
# Both the version and the builder number may be overridden in flutter
# build by specifying --build-name and --build-number, respectively.
# In android, build-name is used as versionName while build-number used as versionCode.
# Read more about Android versioning at https://developer.android.com/studio/publish/versioning
# In ios, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
# Read more about iOS versioning at
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
version: 1.0.0+1
environment:
sdk: ">=2.12.0 <3.0.0"
dependencies:
flutter:
sdk: flutter
# The following adds the Cupertino Icons font to your application.
# Use with the CupertinoIcons class for iOS style icons.
cupertino_icons: ^1.0.2
firebase_auth: ^1.4.1
firebase_core: ^1.3.0
flutter_pdfview: ^1.0.4
cloud_firestore: ^2.2.2
firebase_database: ^7.1.1
provider: ^5.0.0
path: ^1.7.0
http: ^0.12.2
loading_animations: "^2.1.0"
dev_dependencies:
flutter_test:
sdk: flutter
flutter_native_splash: ^1.2.0
flutter_native_splash:
color: "#2d63d6"
image: assets/splash.jpg
android: true
ios: true
# For information on the generic Dart part of this file, see the
# following page: https://dart.dev/tools/pub/pubspec
# The following section is specific to Flutter.
flutter:
# The following line ensures that the Material Icons font is
# included with your application, so that you can use the icons in
# the material Icons class.
uses-material-design: true
# To add assets to your application, add an assets section, like this:
assets:
- assets/
# An image asset can refer to one or more resolution-specific "variants", see
# https://flutter.dev/assets-and-images/#resolution-aware.
# For details regarding adding assets from package dependencies, see
# https://flutter.dev/assets-and-images/#from-packages
# To add custom fonts to your application, add a fonts section here,
# in this "flutter" section. Each entry in this list should have a
# "family" key with the font family name, and a "fonts" key with a
# list giving the asset and other descriptors for the font. For
# example:
# fonts:
# - family: Schyler
# fonts:
# - asset: fonts/Schyler-Regular.ttf
# - asset: fonts/Schyler-Italic.ttf
# style: italic
# - family: Trajan Pro
# fonts:
# - asset: fonts/TrajanPro.ttf
# - asset: fonts/TrajanPro_Bold.ttf
# weight: 700
#
# For details regarding fonts from package dependencies,
# see https://flutter.dev/custom-fonts/#from-packages
提前致谢;)
【问题讨论】:
【参考方案1】:因为正如消息所说,firebase_auth
需要 http_parser
正好是 ^4.0.0,但同时,http
需要 http_parser
小于 ^4.0.0。
您有两个选择,要么降级firebase_auth
,要么升级http
。问题是,您无法知道哪些版本实际上可以相互配合。
您可以运行此命令以了解更多信息
dart pub outdated
这会给你一个类似this的输出。
在可升级列中,它会告诉您哪些软件包有更新。
在可解决的列中,它会告诉您可以更新哪些软件包(如果有的话),因为有时会出现解决问题,这就是您正在发生的事情。
所以降级 firebase_auth
可能会奏效,如果确实如此,并且您想要它的最新版本,请运行此命令以查看 firebase_auth
和 http
的可解决问题
【讨论】:
感谢您的回复。我能够使用flutter pub outdated
命令解决它。首先,我分别更新了firebase_auth
和firebase_core
,然后我运行了flutter pub upgrade
并升级了其余的包,之后我能够安装http
包。以上是关于Flutter 版本解决失败 firebase_auth ^1.4.1 和 http ^0.12.2的主要内容,如果未能解决你的问题,请参考以下文章
Flutter easy_localization 和 intl 版本解决失败
firebase 消息传递和flutter sdk 驱动程序版本解决失败