Flutter 解决Type ‘MouseCursor‘ not found.

347 阅读1分钟

出现场景

开发环境

adodeMacBook-Pro:~ ado$ flutter --version
Flutter 2.0.3 • channel stable • https://github.com/flutter/flutter.git
Framework • revision 4d7946a68d (6 months ago) • 2021-03-18 17:24:33 -0700
Engine • revision 3459eb2436
Tools • Dart 2.12.2

项目中需要展示图表,去pub上找了个库fl_chart,看起来很不错,于是准备拿来用。我用的时候最新版本是0.40.0,添加到pubspec.yaml,运行出现以后错误。

../../../dev_tools/flutter/.pub-cache/hosted/pub.flutter-io.cn/fl_chart-0.40.0/lib/src/chart/base/base_chart/base_chart_data.dart:199:60: Error: Type 'MouseCursor' not found.
typedef MouseCursorResolver<R extends BaseTouchResponse> = MouseCursor Function(FlTouchEvent, R?);
                                                           ^^^^^^^^^^^


FAILURE: Build failed with an exception.

解决方法

看错误指的是MouseCursor这个类找不到。MouseCursor是desktop平台的鼠标光标,看样子应该属于Flutter高版本API的类。所以我们只需要将Flutter版本升级或者使用低版本的库。

方法1:升级Flutter

我目前的版本是Flutter 2.0,升级到Flutter 2.2以上即可。

方法2:使用兼容低版本的三方库

在pub库中,切换到version选项,从下面版本一个一个试,

image.png 切换到0.36.4,重新运行,发现正常,问题解决。 其他库的解决方法同时,新的版本不行,就继续换成老的版本一个一个试。