Flutter空安全迁移执行dart migrate命令出现RangeError索引越界问题
问题解答
项目分析阶段未发现任何问题属于正常情况,该阶段仅做基础的语法错误校验,不会触发迁移工具后续深度代码分析逻辑。
你遇到的RangeError是Dart 2.12.x版本内置analyzer包的已知缺陷,工具处理代码内注解时触发了数组越界,和你当前Dart SDK版本、Flutter beta渠道版本的适配冲突有关,可按以下步骤解决:
- 优先切换Flutter到稳定渠道并升级到最新版本,对应Dart SDK会同步升级到2.17及以上的稳定版,修复该已知bug,执行命令:
flutter channel stable flutter upgrade
- 修改pubspec.yaml中的SDK约束,将最低版本调整为空安全要求的最低版本:
environment: sdk: ">=2.12.0 <3.0.0"
- 升级项目所有依赖到支持空安全的版本:
flutter pub upgrade --null-safety
- 清理项目缓存后重新执行迁移命令:
flutter clean dart pub get dart migrate
- 若上述操作后仍触发报错,可以放弃自动迁移工具,手动完成空安全适配:按照空安全语法规则逐个调整代码,配合IDE的静态检测提示修改即可。
内容的提问来源于stack exchange,提问作者Christian
相关产品推荐
相关产品推荐

