Flutter 解决Type ‘MouseCursor‘ not found.

本文介绍了一个在Flutter项目中使用fl_chart库遇到的兼容性问题,并提供了两种解决方案:升级Flutter版本或使用与当前版本兼容的旧版fl_chart。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

出现场景

开发环境

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选项,从下面版本一个一个试,
在这里插入图片描述
切换到0.36.4,重新运行,发现正常,问题解决。
其他库的解决方法同时,新的版本不行,就继续换成老的版本一个一个试。

<think>好的,我现在需要帮助用户解决Flutter插件加载器在Gradle构建中未找到的问题。用户提到的具体错误是dev.flutter.flutter-plugin-loader:1.0.0找不到。根据用户提供的引用,特别是引用[2]、[4]、[5],看起来可能和Kotlin版本或仓库配置有关。 首先,我应该考虑仓库配置是否正确。用户可能在build.gradle文件中没有正确设置plugin仓库,或者仓库顺序有问题。引用[1]提到repositoriesMode的作用,可能涉及到Gradle仓库的配置模式。需要检查项目级和全局的仓库设置,确保包含了Google和Maven Central等必要仓库。 其次,Kotlin版本不匹配也是一个常见问题。引用[2]、[4]、[5]都是关于Kotlin插件版本的问题,用户可能升级了Android Studio后,Kotlin版本自动更新,但项目中其他部分可能仍在使用旧版本,导致依赖解析失败。需要确认build.gradle中的Kotlin版本是否与Flutter插件兼容,可能需要手动调整到一致。 另外,用户可能遇到了网络问题,比如依赖下载被拦截或缓存问题。需要建议检查网络设置,或者尝试清除Gradle缓存,重新同步项目。 可能还需要检查Flutter和Gradle的版本兼容性,确保Flutter SDK是最新的,并且Gradle版本与Flutter项目要求的版本匹配。引用[3]提到com.android.tools.build:gradle版本过低可能导致问题,升级Gradle插件版本可能有帮助。 最后,用户可能需要手动指定Flutter插件版本,或者检查是否有拼写错误。如果所有配置正确,但问题依旧,可能需要查看详细的错误日志,定位具体缺失的依赖项,并手动添加到构建脚本中。 总结下来,解决步骤应该是:检查仓库配置、同步Kotlin版本、清理缓存、升级相关依赖版本、检查Flutter SDK和Gradle版本,最后如果问题未解决,查看详细日志进一步排查。</think>### 解决 Flutter 插件加载器未找到的问题 #### 1. 检查插件仓库配置 在项目根目录的 `build.gradle` 文件中,确保 `pluginManagement` 块包含以下仓库: ```groovy pluginManagement { repositories { google() mavenCentral() gradlePluginPortal() } } ``` **说明**:Gradle 默认从 `gradlePluginPortal()` 加载插件,但部分 Flutter 插件可能依赖 Google 或 Maven Central 仓库[^1]。 #### 2. 同步 Kotlin 插件版本 在 `build.gradle` 中检查并调整 Kotlin 版本: ```groovy buildscript { ext.kotlin_version = "1.6.21" // 与 Flutter SDK 兼容的版本 dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } ``` **说明**:Kotlin 版本与 Flutter 插件不兼容会导致依赖解析失败(参考引用[2][^2], [4][^4], [5][^5])。 #### 3. 清理 Gradle 缓存 在终端中执行以下命令: ```bash ./gradlew cleanBuildCache rm -rf ~/.gradle/caches/ ``` **说明**:缓存损坏可能导致插件加载异常(常见于版本升级后)。 #### 4. 升级 Flutter 和 Gradle 版本 - 更新 Flutter SDK: ```bash flutter upgrade ``` - 修改 `android/build.gradle` 中的 Gradle 插件版本: ```groovy classpath 'com.android.tools.build:gradle:7.3.0' // 支持 Flutter 3.x+ ``` #### 5. 手动指定插件版本 在 `settings.gradle` 中添加插件解析规则: ```groovy pluginManagement { resolutionStrategy { eachPlugin { if (requested.id.namespace == "dev.flutter") { useModule("dev.flutter:flutter-gradle-plugin:1.0.0") } } } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值