为Flutter更新Dart SDK

142

我希望在Flutter中使用Dart SDK >= 2.2.0,但目前Flutter使用的版本是2.1.2。

flutter --version
Flutter 1.2.1 • channel stable • https://github.com/flutter/flutter.git
Framework • revision 8661d8aecd (2 months ago) • 2019-02-14 19:19:53 -0800
Engine • revision 3757390fa4
Tools • Dart 2.1.2 (build 2.1.2-dev.0.0 0a7dcf17eb)

我尝试独立安装了2.2.0版本,并且成功了:

dart --version
Dart VM version: 2.2.0 (Tue Feb 26 15:04:32 2019 +0100) on "macos_x64"

然而,正如您在上面所看到的那样,Flutter并未使用该版本。我尝试替换Flutter使用(flutter/bin/cache/dart-sdk)的dart-sdk文件,将其替换为我独立安装的版本,但是当我尝试运行Flutter时,出现了一个快照问题,因此我将原始的dart-sdk文件夹放回Flutter目录中。

您有任何想法如何更新吗?

PS: 我最近从这里下载了Flutter(10天前):https://flutter.dev/docs/get-started/install/macos

18个回答

76

您需要使用flutter upgrade命令从cli升级Flutter。然后,Flutter将使用最新版本的Dart SDK。Flutter不使用您本地的Dart SDK。


71

可能是因为您在使用最安全的四个版本中的一个——稳定版(stable),这些版本是用于更新的最安全的构建版本(请参见此处列出的渠道)。

如果您想试用新功能,但又不想冒险使用不良构建版本,我建议您尝试一下 测试版(beta)

每个月,我们挑选上个月或几个月中“最好”的开发版本,并将其升级为测试版。这些版本已通过我们的代码实验室进行了测试。

其中,稳定通道的描述如下:

当我们认为有一个特别好的版本时,我们会将其升级到稳定通道。我们打算每季度左右升级一次,但这可能会有所变化。我们建议您将此通道用于所有生产应用程序发布。我们可能会针对高优先级错误向稳定通道发送热修复,但我们的意图是很少这样做。

您可以使用以下命令在终端中更改通道以指向 测试版(beta)flutter channel beta,然后再运行flutter upgrade以确保您已经获得了该特定分支的最新版本。

请告诉我这对您的情况有何影响。


2
非常有帮助,现在我的Flutter Dart版本是2.3.0!谢谢 :) - Itoun
32
值得一提的是,Flutter 包括了 Dart SDK,不需要单独安装。 - Patrick Kelly
感谢分享,我已经寻找这个问题很长时间了。 - Atul Chaudhary
但是我们能否实际更新Dart SDK版本并保留当前的Flutter版本呢?我遇到了这样一种情况,这已经成为必要性。 - cVergel
1
@cVergel,只是为了澄清一下;您想在不升级Flutter版本的情况下使用Dart SDK的未发布版本吗?这个技巧将允许您利用更新的Dart SDK。但是,您必须升级您的Dart版本。 - flarkmarup
我修改了它,现在它可以工作了,但是在Dart中发现有许多类型,它们是稳定版、测试版还是开发版。 - ahmed

64

这个问题是由于dart版本引起的,更新flutter不会更新dart版本, 解决方法是, 首先,您需要在dev或master通道上,

flutter channel master
flutter upgrade

接下来运行flutter doctor -v命令,如果您发现您的Dart版本仍然是旧的,请手动更新它,如文档所述Dart

对于Windows用户:

choco upgrade dart-sdk

如果您是Mac用户,使用brew安装dart:

brew upgrade dart

如果您没有安装,可以安装它。

 brew tap dart-lang/dart
 brew install dart
希望这能解决你的问题。

无法安装Dart 2.17和2.18。@Ali Azimoshan,您是否可以在macOS上升级? - Dolphin

10

根据您想要使用的Flutter通道,您可能需要更新您的pubspec.yaml:

如果您正在使用稳定通道:

进入pubspec.yaml文件并输入以下内容:

environment:
  sdk: ">=2.2.0 <3.0.0"

(无论您想要的Dart SDK版本都在前面)

dependencies:
  cupertino_icons: ^1.0.0

如果您在测试渠道上:

environment:
      sdk: ">=2.12.0 <3.0.0"

dependencies:
  cupertino_icons: ^1.0.1

如果您使用的是稳定版(或beta版),请在您的IDE中打开终端,并输入以下命令:

flutter channel stable
# or flutter channel beta
flutter upgrade
flutter pub get

使用 flutter --version 命令检查版本。

希望对您有所帮助。


8
如果使用Flutter安装了Dart,那么只需执行以下命令即可:
flutter upgrade

6
在终端上运行flutter upgrade,它将自动更新dart SDK和flutter版本。

4
尝试这个。
flutter channel stable
flutter upgrade

或者这个

flutter channel master
flutter upgrade

3
如果您使用Android Studio, 打开“工具”->“Flutter”->“Flutter升级” 点击“Flutter升级”,然后您就可以安装它。

3
您可以使用终端通过输入 flutter upgrade 来升级 Dart SDK。 这将同时升级 Flutter 和 Dart SDK。 实际上,flutter upgrade 包含了 Flutter 和 Dart SDK,并且不会单独安装它们。

2
你更新的Dark SDK可能是全局Dart安装中的一个。
使用以下命令检查你的Flutter Dart路径:
which flutter dart

如果它看起来像这样

[/path-to-flutter-sdk]/bin/flutter
/usr/local/bin/dart

您需要将其更改为使用与Flutter相关联的那个。

[/path-to-flutter-sdk]/bin/flutter
[/path-to-flutter-sdk]/bin/dart

要更新它,你需要更新你的$PATH,使得[/path-to-flutter-sdk]/bin/flutter/usr/local/bin之前。

你能详细告诉我如何设置Flutter Dart的路径变量吗? - Arun Kumar P

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接