如何降级Flutter SDK(Dart 1.x)

217

我升级了Flutter SDK,但现在我的项目出了问题。我需要回退到使用Dart 1.x的Flutter SDK。

我尝试了在pubspec.yaml文件中进行以下更改:

environment:
  sdk: ">=1.19.0 <2.0.0"
  flutter: "^0.1.2"

dependencies:
  flutter:
    sdk: flutter

但现在这个项目根本就不能成功构建。

Running "flutter packages get" in binformed...
Package binformed requires Flutter SDK version ^0.1.2 but the current SDK is 0.2.5-pre.38.
pub get failed (1)

我需要卸载SDK并重新安装吗?


请参见:https://github.com/flutter/flutter/issues/71723 - User Rebo
这对我在安装了brew的MacOSX上使用flutter有效: cd $(dirname $(readlink -f $(which flutter))) && git checkout 3.3.4 - Xamrix
26个回答

292

Flutter使用git进行版本控制。更改Flutter版本就像更改git分支一样简单。

有两种不同的方式:

  • flutter channel <branch> (例如: flutter channel stable)

此命令用于在分支之间切换 - 通常是stable/dev/beta/master。 我们也可以从git中放置特定的提交ID。

  • flutter downgrade <version> (例如: flutter downgrade v1.2.1)

这个命令将使用一个特定的版本号。 你可以使用flutter downgrade这里查看可用的版本号列表。

之后,运行任何Flutter命令(例如flutter doctor), Flutter会自动下载/编译运行此版本所需的所有内容。


57
现在flutter version已经被弃用,应该使用flutter downgrade命令。 - Abdullah
4
在终端中使用"flutter version"命令,会显示"Flutter version命令已删除,正在使用最新的通道版本"。 - Iván Yoed
49
现在无法通过降级命令选择特定的Flutter版本。 执行flutter downgrade v2.0将返回以下信息: “在‘stable’渠道中没有先前记录的版本。‘beta’渠道之前使用的版本是1.26.0-17.3.pre。” - prasadsunny1
1
在我的情况下,我需要运行“flutter pub upgrade”来运行“flutter build apk --split-per-abi”。在按照您的所有步骤之后。谢谢。 - Jorge Wander Santana Ureña
2
对我来说,只有在Flutter存储库中使用“git checkout 1.22.6”切换到旧版本才有效。1.22.6是您想要使用的版本。 - novas1r1
显示剩余3条评论

133
运行以下命令以查看可用版本列表。
flutter version 

然后通过运行选取您想要切换到的版本

flutter version v1.2.1
撤销并恢复到稳定状态。
flutter channel stable
flutter upgrade

1
使用命令 flutter version <version> 时,我收到了错误信息“无法检出版本 <version> 分支”。 - Tuan van Duong
1
您选择了有效的版本号吗? - Graham
17
flutter version已被弃用,请使用flutter downgrade v1.22.0代替。 - E. Sun
10
自 Flutter >2.0 起,这些命令均不再适用。例如,flutter version v2.0.0 会输出错误信息 Could not find a command named "version". - prasadsunny1
使用 flutter --version - eqrakhattak
显示剩余2条评论

95

1
谢谢。这对Flutter SDK来说有点用,但似乎工具仍然设置为Dart 2.0.0?如果您能帮我还原到Dart 1.X,我会将其标记为答案。(我以为它们是相关的SDK和Dart) - Stephane
1
只需删除 flutter/bin/cache 目录,就可以使用当前的 Flutter 版本重新生成它们。 - Günter Zöchbauer
1
抱歉,但我的知识到此为止了 :-/ - Günter Zöchbauer
2
要从命令行获取可用标签/版本的列表,您可以在本地Flutter文件夹中使用git ls-remote --tags - sebasbad
1
我的问题是在我的Flutter项目中使用map_view插件无法打开交互式地图,每次尝试打开地图时应用程序都会崩溃。我将升级到最新的Flutter版本并再次尝试......如果仍然不起作用,我可能会为此创建一个新问题,或者如果您有解决方案,请告诉我,我很乐意听取建议。 - Israel Obanijesu
显示剩余12条评论

73

不要使用flutter version vX.X.X命令,应该使用flutter downgrade命令。

flutter downgrade 

编辑:

如果之前没有安装过任何版本,上述命令将失败。因此,如果您想切换到特定版本的Flutter,则可以使用flutter version命令:

flutter downgrade v1.17.0
您可以在此处找到版本列表:这里

20
“stable” 频道没有先前记录的版本。现在怎么办? - tapizquent
7
一样的问题,刚刚“升级”到1.7版本后,我们的项目完全崩溃了。尝试降级时也收到了这个错误信息。 - ajonno
@CopsOnRoad 我遇到了错误 https://gist.github.com/marinat/b52dbc6e8934f77121bdb15c9e929243,而且现在运行 flutter --version 的结果是:Flutter 1.12.13+hotfix.5 • 渠道未知 • 来源未知。 - umni4ek
6
最新的Flutter 2.x已经不支持此操作,您需要从GitHub发布的版本中手动安装Flutter。 - agilob
这个频道中没有之前记录的版本。请尝试像这里这样更改频道:https://dev59.com/eVUM5IYBdhLWcg3wAsdF#70489526 - Mostafa Wael
显示剩余6条评论

47

降级有很多已弃用的命令。

实际上可行的两个,我已经测试过它们,它们是:

flutter downgrade v[flutter build version]

例如:

flutter downgrade v1.22.6

另一个方法是前往您的Flutter SDK文件夹,即名为“flutter”的文件夹,并在其中打开一个新终端。然后输入以下命令:

git checkout [flutter build version]
例如:
git checkout 1.22.3

然后运行flutter doctor,以确认您已正确切换。

您可以在以下网址检查版本:https://flutter.dev/docs/development/tools/sdk/releases?tab=macos

详细信息请参见:https://flutter.dev/docs/release/breaking-changes


如果您想要切换频道,只需执行:

flutter channel [channel]

例如(选择以下其中一项:masterstabledevbeta):

flutter channel stable

如果您想再次升级:

flutter upgrade

1
请注意,仅当您在正确的频道上时才能运行。例如:如果您在稳定频道上,并希望切换到 beta 版本,请先运行“flutter channel beta”,否则降级将无法正常工作。 - August Kimo
2
在Flutter2.0版本发布后,你只能降级到2.0.1。如果你想要降级到更低的版本,你需要使用 git checkout 命令。 - eqrakhattak
在稳定分支上,使用 git checkout 1.22.4 命令,然后运行 flutter doctor -v 命令可以帮助我完成下载。 - AWP
我目前使用的是3.3.8版本,如果降级到v3.3.7会回滚到2.0.2,有什么想法吗? - vontdeux
使用git checkout的方法。那个方法总是有效的。 - Iván Yoed

21
为了正确降级到任何版本,需按以下步骤操作:
  1. 切换到开发者模式

    flutter channel dev

  2. 降级到指定版本,例如以下命令

    flutter downgrade v2.0.6

这对我有用!


我目前使用的是3.3.8版本,如果降级到v3.3.7版本会回退到2.0.2版本,有什么想法吗? - vontdeux

13

前往终端并输入特定的版本号,例如 -

flutter downgrade v1.22.3

然后只需按下回车键。 从互联网获取文件后,它会询问:

Downgrade flutter to version 1.22.5
? [y|n]:

输入y即可将其降级到指定版本。

重新启动IDE以使设置生效。

enter image description here


11
为了解决这些错误:
$ flutter version
Could not find a command named "version".

$ flutter downgrade v1.22.6
There is no previously recorded version for channel "stable".

删除旧的Flutter文件夹

下载归档文件并解压缩,代替删除的Flutter文件夹

或者

cd "$(dirname $(which flutter))" 然后

git checkout . (可选)

git pull origin (可选)

git checkout v1.22.6

flutter doctor

p.s. 不要忘记重新启动你的Android Studio。


use flutter --version. - eqrakhattak
@icyNerd,--version标志仅用于查看版本,而版本参数(在我的情况下不存在,我不知道为什么)是用于更改已安装 Flutter 的版本。 - Néstor

10

目前,管理Flutter版本最简单的方法是通过fvm。

  1. 安装fvm
brew tap leoafarias/fvm
brew install fvm
  1. 安装您的版本
fvm install x.x.x
  1. 安装您要使用的版本到全局环境(如果需要)
fvm global x.x.x

这是一个应用程序指南链接

https://fvm.app/docs/getting_started/installation


8

只需使用flutter downgrade v2.8.0, 然后flutter会要求确认。

Downgrade flutter to version 1.22.5
? [y|n]:

输入y确认更改


2
它返回没有记录的“stable”频道的先前版本。 - Boken

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