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

如何在非健全空安全模式下执行flutter pub get?

解决Flutter依赖非空安全包时pub get失败的问题

当你使用Dart 3.x SDK,依赖不支持空安全的包时,直接执行flutter pub get会因为版本约束冲突失败,以下是可行的解决步骤:

1. 调整项目的SDK约束

打开项目根目录下的pubspec.yaml,修改environment中的sdk范围,确保下限为2.12.0(空安全的起始版本),同时兼容Dart 3.x:

environment:
  sdk: '>=2.12.0 <4.0.0'

2. 以非健全空安全模式执行依赖获取

由于flutter pub get不支持直接添加--no-sound-null-safety参数,你可以选择以下两种方式:

方式一:使用dart命令执行

直接用dart命令替代flutter命令,加上非健全空安全参数:

dart pub get --no-sound-null-safety

方式二:通过环境变量临时启用非健全模式

  • Linux/macOS终端:
    export DART_NO_SOUND_NULL_SAFETY=true
    flutter pub get
    
  • Windows PowerShell:
    $env:DART_NO_SOUND_NULL_SAFETY=true
    flutter pub get
    

3. 配置IDE以适配非健全空安全模式(可选)

如果你的IDE(如VS Code、Android Studio)出现语法提示错误,可以添加配置:

  • VS Code:在settings.json中添加
    "dart.flutterRunAdditionalArgs": ["--no-sound-null-safety"],
    "dart.experimentalAdditionalArgs": ["--no-sound-null-safety"]
    
  • Android Studio:在运行配置的"Additional run args"中添加--no-sound-null-safety

报错原因说明

当前Dart 3.x SDK默认强制健全空安全,而你依赖的包不支持空安全,且其SDK约束限制在<3.0.0,导致版本解析逻辑冲突。通过调整项目SDK约束并启用非健全空安全模式,就能让依赖解析通过,同时允许混合使用支持和不支持空安全的代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 02:35:06