You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter开发报错'ChangeNotifierProvider' isn't a function 排查求助

问题场景

开发拼写类应用时,运行如下代码触发报错,未定位到代码编写问题:

void main() {
  runApp(ChangeNotifierProvider(create: (_) => Controller(), child: MyApp()));
}

控制台抛出的错误原文为'ChangeNotifierProvider' isn't a function.,翻译为:'ChangeNotifierProvider' 不是一个函数。

触发原因
  • 未在项目中正确引入provider状态管理包,或是当前代码文件缺失对应包的导入语句,编译器无法识别ChangeNotifierProvider的构造方法,将其判定为未定义的普通标识符,最终抛出该错误。
  • 存在标识符命名冲突:当前文件自定义了同名的类、变量或函数,或是导入的其他第三方库导出了同名的ChangeNotifierProvider,导致标识符指向错误。
修复方案
  1. 打开项目根目录下的pubspec.yaml文件,在dependencies节点下添加provider依赖:
dependencies:
  flutter:
    sdk: flutter
  provider: ^6.1.1 # 可替换为当前最新的稳定版本
  1. 在项目根目录执行依赖拉取命令:
flutter pub get
  1. 在编写main方法的dart文件顶部,补充provider包的导入语句:
import 'package:provider/provider.dart';
  1. 完成上述操作后如果仍报错,检查当前文件是否存在同名自定义标识符,或是其他库的同名导出冲突,存在冲突时可通过导入时加hide关键字屏蔽冲突项即可。

内容的提问来源于stack exchange,提问作者Perpetually Curious

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 10:48:18