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

Flutter示例应用执行dart migrate时的空安全迁移异常问题

空安全迁移工具误将本地main.dart识别为外部非空安全库

问题场景

  • 在Android Studio创建的Flutter计数器示例项目中运行dart migrate工具,已添加待迁移的标记代码;因大型项目存在相同问题,故使用最小复现项目排查
  • 预期迁移工具加载并处理main.dart,但工具将其识别为导入的非空安全库,导致无法继续迁移流程

环境与配置

版本信息

  • Flutter 3.7.12(未知渠道)
  • Framework 修订版:4d9e56e694(2023-04-17)
  • Engine 修订版:1a65d409c7
  • Dart 2.19.6
  • DevTools 2.20.1

pubspec.yaml核心配置

environment:
  sdk: '>=2.11.0 <3.0.0'

完整pubspec.yaml代码:

name: migrate1
description: A new Flutter project.
publish_to: 'none' # 私有包配置,防止意外发布到pub.dev

version: 1.0.0+1

environment:
  sdk: '>=2.11.0 <3.0.0'

dependencies:
  flutter:
    sdk: flutter

  cupertino_icons: ^1.0.2

dev_dependencies:
  flutter_test:
    sdk: flutter

  flutter_lints: ^2.0.0

flutter:
  uses-material-design: true

命令执行结果

运行dart migrate后,控制台输出:

在迁移您的包之前,我们建议确保所有直接或间接导入的库都已迁移至空安全,以便您能在严格空检查模式下运行单元测试。您当前导入了以下非空安全库:
package:migrate1/main.dart
请先升级包含这些库的包至空安全版本,再继续操作。如需查看可用的空安全包版本,请执行命令:dart pub outdated --mode=null-safety。

问题猜测

该问题疑似是迁移工具的逻辑错误,误将本地项目内的main.dart识别为外部依赖库,而非待迁移的本地代码,此表现与Dart SDK的已知问题特征匹配。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 13:17:08