如何解决 Flutter 中的第 3 方插件冲突?
How to resolve the 3rd party plugin conflicts in Flutter?
这是我的 pubspec.yaml 文件的一部分
environment:
sdk: ">=2.7.0 <3.0.0"
dependencies:
flutter:
sdk: flutter
flutter_localizations:
sdk: flutter
http: ^0.13.3
syncfusion_flutter_calendar: ^18.4.47
flutter_chat_bubble: ^1.0.2
intl: ^0.17.0
flutter_local_notifications: ^4.0.1+2
provider: ^5.0.0
sqflite_sqlcipher: ^2.0.0
logging: ^1.0.1
grouped_list: ^3.5.0
visibility_detector: ^0.1.5
smart_select: ^4.3.2
dropdown_search: ^0.5.0
synchronized: ^3.0.0
local_auth: ^1.1.5
font_awesome_flutter: ^9.0.0
lite_rolling_switch: ^0.1.1
flutter_webview_plugin: ^0.3.11
email_validator: ^1.0.6
package_info: ^2.0.0
connectivity: ^3.0.3
device_info: ^2.0.0
encrypt: ^5.0.0
flutter_html: ^1.3.0
url_launcher: ^6.0.2
flutter_inappwebview: ^5.3.2
signalr_core: ^1.1.1
当我尝试 运行 应用时出现此错误
运行 mobile_app1 中的“flutter pub get”...
因为 signalr_core 没有匹配 >1.1.1 <2.0.0 和 signalr_core 1.1.1 依赖元组 ^2.0.0,signalr_core ^1.1.1 需要元组 ^2.0.0 .
并且因为没有版本的元组匹配 >2.0.0 <3.0.0 并且元组 2.0.0 依赖箭袋 ^3.0.0,signalr_core ^1.1.1 需要箭袋 ^3.0.0。
并且因为 flutter_layout_grid 0.10.5 依赖于 quiver ^2.0.0 并且 flutter_layout_grid 没有版本匹配 >0.10.5 <0.11.0,signalr_core ^1.1.1 与 [= 不兼容29=]^0.10.5。
并且因为 flutter_html 1.3.0 依赖于 flutter_layout_grid ^0.10.5 并且 flutter_html 没有匹配 >1.3.0 <2.0.0 的版本,所以 signalr_core ^1.1.1 是与 flutter_html ^1.3.0 不兼容。
所以,因为mobile_app1同时依赖flutter_html^1.3.0和signalr_core^1.1.1,版本解析失败。
pub get failed (1; 所以,因为 mobile_app1 同时依赖 flutter_html ^1.3.0 和 signalr_core ^1.1.1,版本解析失败。)
我通过在我的 pubspec.yaml 文件中添加这个解决了这个问题
dependency_overrides:
quiver: ^3.0.0
有没有更好的办法解决这个冲突?
全部设为any
,然后运行 flutter pub get
.
现在您可以查看 pubspec.lock
文件并查看您获得的版本并将它们放入 pubspec.yaml
。
这是我的 pubspec.yaml 文件的一部分
environment:
sdk: ">=2.7.0 <3.0.0"
dependencies:
flutter:
sdk: flutter
flutter_localizations:
sdk: flutter
http: ^0.13.3
syncfusion_flutter_calendar: ^18.4.47
flutter_chat_bubble: ^1.0.2
intl: ^0.17.0
flutter_local_notifications: ^4.0.1+2
provider: ^5.0.0
sqflite_sqlcipher: ^2.0.0
logging: ^1.0.1
grouped_list: ^3.5.0
visibility_detector: ^0.1.5
smart_select: ^4.3.2
dropdown_search: ^0.5.0
synchronized: ^3.0.0
local_auth: ^1.1.5
font_awesome_flutter: ^9.0.0
lite_rolling_switch: ^0.1.1
flutter_webview_plugin: ^0.3.11
email_validator: ^1.0.6
package_info: ^2.0.0
connectivity: ^3.0.3
device_info: ^2.0.0
encrypt: ^5.0.0
flutter_html: ^1.3.0
url_launcher: ^6.0.2
flutter_inappwebview: ^5.3.2
signalr_core: ^1.1.1
当我尝试 运行 应用时出现此错误
运行 mobile_app1 中的“flutter pub get”... 因为 signalr_core 没有匹配 >1.1.1 <2.0.0 和 signalr_core 1.1.1 依赖元组 ^2.0.0,signalr_core ^1.1.1 需要元组 ^2.0.0 . 并且因为没有版本的元组匹配 >2.0.0 <3.0.0 并且元组 2.0.0 依赖箭袋 ^3.0.0,signalr_core ^1.1.1 需要箭袋 ^3.0.0。 并且因为 flutter_layout_grid 0.10.5 依赖于 quiver ^2.0.0 并且 flutter_layout_grid 没有版本匹配 >0.10.5 <0.11.0,signalr_core ^1.1.1 与 [= 不兼容29=]^0.10.5。 并且因为 flutter_html 1.3.0 依赖于 flutter_layout_grid ^0.10.5 并且 flutter_html 没有匹配 >1.3.0 <2.0.0 的版本,所以 signalr_core ^1.1.1 是与 flutter_html ^1.3.0 不兼容。 所以,因为mobile_app1同时依赖flutter_html^1.3.0和signalr_core^1.1.1,版本解析失败。 pub get failed (1; 所以,因为 mobile_app1 同时依赖 flutter_html ^1.3.0 和 signalr_core ^1.1.1,版本解析失败。)
我通过在我的 pubspec.yaml 文件中添加这个解决了这个问题
dependency_overrides:
quiver: ^3.0.0
有没有更好的办法解决这个冲突?
全部设为any
,然后运行 flutter pub get
.
现在您可以查看 pubspec.lock
文件并查看您获得的版本并将它们放入 pubspec.yaml
。