flutter - 因为sdk的flutter_driver每个版本都依赖crypto 2.1.5,Cruise依赖crypto 3.0.0,所以sdk的flutter_driver是被禁止的
问题描述
当我在 Fedora 32 中编译我的项目时,显示此错误:
Running "flutter pub get" in cruise-open...
Because every version of flutter_driver from sdk depends on crypto 2.1.5 and Cruise depends on crypto 3.0.0, flutter_driver from sdk is forbidden.
So, because Cruise depends on flutter_driver any from sdk, version solving failed.
pub get failed (1; So, because Cruise depends on flutter_driver any from sdk, version solving failed.)
这是我的pubspec.yaml
文件:
name: Cruise
description: A RSS article read Flutter application.
publish_to: 'none' # Remove this line if you wish to publish to pub.dev
version: 1.0.0
environment:
sdk: ">=2.7.0 <3.0.0"
dependencies:
flutter:
sdk: flutter
flutter_localizations:
sdk: flutter
intl: 0.17.0
meta: ^1.1.8
flutter_svg: 0.19.0
logger: 0.9.4
scoped_model: ^1.1.0
shrine_images: ^1.1.2
flare_dart: 2.3.4
flare_flutter: ^2.0.2
vector_math: ^2.0.8
collection: ^1.14.0
package_info: ^0.4.0
fluttertoast: 7.1.6
flutter_staggered_grid_view: ^0.3.0
adaptive_breakpoints: ^0.0.2
cupertino_icons: 1.0.0
http: ^0.12.0+2
flutter_icons: ^1.0.0
timeago: 2.0.26
animations: 1.1.2
flutter_hooks: ^0.12.0
share: ^0.6.4+3
shimmer: 1.1.1
crypto: 3.0.0
url_launcher: 5.5.0
uni_links: 0.4.0
flutter_html: 1.2.0
shared_preferences: ^0.5.8
state_notifier: ^0.5.0
flutter_secure_storage: 3.3.3
flutter_slidable: "^0.5.5"
hive: ^1.4.1+1
pull_to_refresh: 1.6.3
intl_phone_number_input: ^0.5.0
dio: 3.0.10
fish_redux: 0.3.4
hive_flutter: 0.3.1
dev_dependencies:
flutter_test:
sdk: flutter
flutter_driver:
sdk: flutter
test:
path:
args:
grinder: ^0.8.0
pedantic: ^1.9.0
string_scanner: ^1.0.5
# 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
generate: true
我应该怎么做才能解决它?这是颤振版本信息:
[dolphin@MiWiFi-R4CM-srv]~/Documents/GitHub/cruise-open% flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 2.0.1, on Linux, locale en_US.UTF-8)
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
[✓] Chrome - develop for the web
[✓] Android Studio (version 4.0)
[✓] IntelliJ IDEA Community Edition (version 2020.2)
[✓] VS Code (version 1.54.1)
[✓] Connected device (2 available)
• No issues found!
解决方案
发生这种情况是因为flutter_driver
' 的空安全迁移没有及时完成。
Even though it's now fixed, it won't be released in stable channel until around early June (or with the next stable channel release).
Meanwhile, we have two solutions:
- Use the
beta
ordev
channel to get the fix ASAP. - Use
dependency_overrides
in yourpubspec.yaml
to keep usingflutter_driver
with your Flutter 2 (while staying instable
channel).
I prefer the second choice. So I edit my pubspec.yaml
like this:
dependencies:
# my list of deps...
dev_dependencies:
flutter_driver:
sdk: flutter
test: any
# my other dev_deps...
# add this section
dependency_overrides:
convert: ^3.0.0
crypto: ^3.0.0
# add this section
This solution worked for me. I can now install flutter_driver
.
This is my reference: https://github.com/flutter/flutter/issues/77282
推荐阅读
- python - 使用小批量权重或全局类权重在加权交叉熵中设置 pos_weight?
- c++ - 如何使用 pugixml 从 url 加载 XML 文件
- asp.net-mvc - 所有组件和服务如何访问 MVC+Angular5 项目的 web.config 中定义的 Web.Config Keys
- azure-devops - 在 VSTS API 中排队 yaml 构建导致无法解决参考错误
- python - Jupyter Notebook、Python 和隐私
- python - ImportError:无法导入名称“评论”
- c# - CE 按钮代码在基本 C# 计算器中不起作用
- c# - mysql整个数据库到json使用c#没有datagridview
- javascript - 删除矩形html5画布之间的空间
- css - 尝试自定义我的单选按钮,但什么都不会改变