Flutter iOS模拟器运行报错:TapDownDetails与TapDragDownDetails类型不兼容
Flutter iOS模拟器编译错误:TapDownDetails与TapDragDownDetails类型不兼容
错误(Xcode):
../../../../.pub-cache/hosted/pub.dev/flutter_math_fork-0.5.0/lib/src/widgets/selection/gesture_detector_builder.dart:186:20: Error: The argument type 'void Function(TapDownDetails)' can't be assigned to the parameter type 'void Function(TapDragDownDetails)?'.无法为模拟器构建应用,无法在iPhone 13 Pro Max上启动应用。
当前依赖
cupertino_icons: ^1.0.2 flutter_redux: ^0.10.0 dio: ^4.0.3 redux_thunk: ^0.4.0 url_launcher: ^6.1.5 modal_bottom_sheet: ^2.0.0 dropdown_search: ^5.0.5 flutter_html: ^2.1.5 linkable: ^3.0.1 lottie: ^2.2.0 flutter_rating_bar: ^4.0.0 shared_preferences: ^2.0.7 device_info_plus: ^8.0.0 percent_indicator: ^4.2.2 animated_widgets: ^1.1.0 skeletons: ^0.0.3 google_mobile_ads: firebase_core: firebase_analytics: ^10.1.0 webview_flutter_plus: gsheets: ^0.4.2 get_it: ^7.2.0 woocommerce_api: ^0.1.0 skeleton_loader: ^2.0.0+4
已尝试操作
flutter cleanflutter upgrade- 删除Xcode派生数据
- 修改第三方包参数类型(需同步修改Flutter SDK代码,未解决)
解决方案
这个错误源于flutter_math_fork:0.5.0版本与当前Flutter稳定版的手势API不兼容——Flutter后续版本将TapDownDetails拆分出TapDragDownDetails类型,旧版flutter_math_fork未适配该变更。可通过以下方式解决:
升级flutter_html到兼容版本
你的flutter_html:^2.1.5依赖旧版flutter_math_fork,将其升级到^3.0.0及以上版本(该版本已适配最新Flutter手势API,且依赖的flutter_math_fork版本同步更新)。修改pubspec.yaml后执行flutter pub get。强制指定兼容的flutter_math_fork版本
若不想升级flutter_html,可在pubspec.yaml中添加依赖覆盖,强制使用修复了类型问题的版本:
dependency_overrides: flutter_math_fork: ^0.6.0
添加后执行flutter pub get,再重新编译项目。
内容的提问来源于stack exchange,提问作者Radika Dilanka
相关产品推荐
相关产品推荐

