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

Flutter应用在iOS模拟器运行时DevTools预编译失败及语言版本过高问题的解决方法

解决Flutter切换SDK后DevTools预编译失败及语言版本过高问题

你遇到的问题根源很明确:切换Flutter SDK后,当前版本对应的Dart 2.13,和项目依赖的shelf_proxy、http等包要求的Dart语言版本不兼容,直接导致了DevTools预编译失败。下面是分步解决方法:

步骤1:确认当前环境的Dart版本

先运行这条命令,明确你当前使用的Flutter和Dart版本:

flutter --version

从错误日志能确定,你的Dart版本是2.13,而shelf_proxy-1.0.1、http-0.13.4这些依赖包需要更高的Dart版本,所以出现了版本不匹配的报错。

步骤2:选择适配方案(二选一即可)

方案A:升级Flutter SDK(推荐,长期维护更省心)

如果你的项目没有必须停留在旧SDK的限制,直接升级到最新稳定版,就能获得更高版本的Dart,兼容这些依赖:

flutter upgrade

升级完成后,重新运行flutter pub get,再尝试启动项目。

方案B:降级依赖包适配旧Dart版本

如果无法升级SDK,需要修改pubspec.yaml中的依赖版本,替换为兼容Dart 2.13的版本:

  • 将http依赖改为兼容版本:
    http: ^0.13.0
    
  • 将shelf_proxy依赖改为兼容版本:
    shelf_proxy: ^0.2.4
    

修改后执行:

flutter pub get

步骤3:清理缓存,避免残留问题

为了彻底清除旧依赖的缓存,执行以下命令:

flutter pub cache clean
flutter clean

如果是iOS项目,还需要进入iOS目录清理Pods:

cd ios
rm -rf Pods Podfile.lock
pod install
cd ..

步骤4:重新启动项目

完成以上操作后,再次尝试在iOS模拟器上启动Flutter应用,应该就能解决预编译失败的问题了。

附你提供的错误日志:
预编译devtools:devtools失败:
../../../../../.pub-cache/hosted/pub.dartlang.org/shelf_proxy-1.0.1/lib/shelf_proxy.dart:1:1: 错误:指定的语言版本过高。最高支持的语言版本为2.13。
// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
^
../../../../../.pub-cache/hosted/pub.dartlang.org/http-0.13.4/lib/http.dart:1:1: 错误:指定的语言版本过高。最高支持的语言版本为2.13。
// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
^
(后续重复错误省略)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 22:58:11