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

Posted

技术标签:

【中文标题】如何降级 Flutter SDK (Dart 1.x)【英文标题】:How to downgrade Flutter SDK (Dart 1.x) 【发布时间】:2018-09-03 05:34:05 【问题描述】:

我升级了我的 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 并重新安装?

【问题讨论】:

【参考方案1】:

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

有两种不同的方式:

flutter channel &lt;branch&gt;(例如:flutter channel stable

该命令用于在分支之间切换——通常是stable/dev/beta/master。 我们也可以从 git 中放入一个特定的提交 id。

flutter downgrade &lt;version&gt;(例如:flutter downgrade v1.2.1

此命令将使用特定的版本号。 您可以使用flutter downgrade 或here 获得可用版本号的列表

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

【讨论】:

flutter version 现已弃用,应使用flutter downgrade 命令 当使用“flutter version”时,终端中的消息是“Flutter version command has been removed, using latest from channel”。 现在无法在降级命令中专门选择哪个flutter版本。执行flutter downgrade v2.0 返回:There is no previously recorded version for channel "stable". Channel "beta" was previously on: 1.26.0-17.3.pre 就我而言,我需要运行“flutter pub upgrade”来运行“flutter build apk --split-per-abi”。按照你的所有步骤后。谢谢 对我来说,它只能在颤振存储库中使用“git checkout 1.22.6”切换到旧版本。 1.22.6是指你要使用的版本。【参考方案2】:

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

flutter version 

然后通过运行选择你要切换到的版本

flutter version v1.2.1

撤消并恢复到稳定状态

flutter channel stable
flutter upgrade

【讨论】:

我使用 cmd flutter version &lt;version&gt; 得到了错误 Unable to checkout version branch for version &lt;version&gt; 您是否选择了有效的版本号? 这最终是否与@Günter Zöchbauer 所说的一样?有人可以检查并确认吗? flutter version 已弃用,请改用flutter downgrade v1.22.0 从 Flutter >2.0 开始,这些命令都不起作用。例如。 flutter version v2.0.0 输出错误Could not find a command named "version".【参考方案3】:

在 Flutter 安装目录下执行

git checkout v0.1.9

然后运行

flutter doctor

您可以在 Flutter GitHub 存储库https://github.com/flutter/flutter 中查看哪些版本可用

有一个开放的功能请求让这更容易https://github.com/flutter/flutter/issues/14230

【讨论】:

谢谢。这对 Flutter SDK 有点工作,但似乎工具仍设置为 Dart 2.0.0?如果您也可以帮助我恢复 Dart 1.X,我会将其标记为答案。 (我以为他们是相关的 SDK 和 Dart) 仅删除flutter/bin/cache 目录应该会导致它们使用当前的 Flutter 版本重新生成。 对不起,我的知识到此结束:-/ 要从命令行获取可用标签/版本的列表,您可以使用本地flutter文件夹中的git ls-remote --tags 我的问题是我无法在我的flutter项目中使用map_view插件打开交互式地图,每次我尝试打开地图时应用程序都会崩溃,我将更新到最新的flutter版本并再试一次.....如果它不起作用,我可能会为此创建一个新问题,或者如果您对我有解决方案,我会很高兴听到它。【参考方案4】:

不要使用flutter version vX.X.X,而是使用flutter downgrade

警告:“flutter version”将使 SDK 处于分离的 HEAD 状态。如果您使用该命令返回之前安装的 SDK 版本,请考虑使用“flutter downgrade”命令。

所以,你应该使用

flutter downgrade 

编辑:

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

flutter downgrade v1.17.0

您可以找到版本列表here

【讨论】:

There is no previously recorded version for channel "stable". 现在怎么办? 相同。刚刚“升级”到 1.7,它完全破坏了我们的项目。尝试降级时也会收到此消息。 @ajonno 昨天发布了一个新版本,似乎解决了之前的一些问题。 @ajonno 你解决降级问题了吗?当我尝试通过“版本”命令更改版本时,出现错误 这不再与最新的颤振 2.x。您必须从 github 上发布的版本手动安装 Flutter 版本。【参考方案5】:

要降级,有许多不推荐使用的命令。

实际工作的两个,我已经测试过,是:

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

【讨论】:

请注意,它只有在您使用正确的频道时才会起作用。例如:如果您使用的是稳定版并且想要移动到测试版,请先运行flutter channel beta,否则降级将无法正常工作。 Flutter2.0 发布后你只能downgrade 到2.0.1。如果你想降级更低,你必须使用git checkout 在稳定的分支上,git checkout 1.22.4 然后flutter doctor -v 帮我下载。【参考方案6】:

为了正确降级到任何版本。

    切换到开发模式

    颤振通道开发

    flutter downgrade v(输入您的版本号)例如下面。

    flutter 降级 v2.0.6

这对我有用!

【讨论】:

【参考方案7】:

转到终端并输入特定的版本号,例如 -

flutter downgrade v1.22.3

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

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

键入y,它将降级到特定版本。

重新启动 IDE 以进行设置。

【讨论】:

【参考方案8】:

要解决这些错误:

$ flutter version
Could not find a command named "version".
$ flutter downgrade v1.22.6
There is no previously recorded version for channel "stable".

删除旧的颤振文件夹

下载archive并解压,而不是删除flutter文件夹

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

git checkout .(可选)

git pull origin(可选)

git checkout v1.22.6

flutter doctor

附言 别忘了重启你的安卓工作室

【讨论】:

使用flutter --version【参考方案9】:

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

    安装 fvm
brew tap leoafarias/fvm
brew install fvm
    安装您的版本
fvm install x.x.x
    全局安装您的版本(如果需要)
fvm global x.x.x

这是应用指南的链接

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

【讨论】:

【参考方案10】:
    下载 Flutter SDK 版本:flutter_windows_1.17.0-stable:https://flutter.dev/docs/development/tools/sdk/releases 将现有的 Flutter 文件夹替换为此版本 确保 IDE 上的环境变量和 Flutter + Dart 设置 仍然绑定到此文件夹/路径

【讨论】:

【参考方案11】:

flutter downgrade就够了,它会降级到以前的稳定版本。

【讨论】:

【参考方案12】:

此解决方案在 2021 年有效

转到您的 Flutter SDK 文件夹,这是您名为“flutter”的文件夹,并在其中打开一个新终端。然后输入:

git checkout (你的颤振版本) 然后, 跑扑医生 在此之后检查您的版本。

【讨论】:

【参考方案13】:

我发现从命令行切换(升级/降级)到特定的 Flutter 版本有点困难。这里的一些答案已经过时了。

我更喜欢手动从here下载不同版本的SDK。

假设我下载了2.0.12.0.52.0.62.0.1 是我当前的 Flutter SDK 版本。

要切换到2.0.5,请删除当前的Flutter SDK(带有蓝色图标的那个)并解压缩flutter_macos_2.0.5-stable.zip。然后运行flutter clean,然后运行flutter doctor,以确认一切正常。

这样做的好处是不必更改任何路径或每次切换时都不必重新下载整个 SDK。

在 macOS 上,如果您因无法运行 dartgentool 而收到系统警告,请按 System Preferences &gt; Security &amp; Privacy 下的 Allow anyway

【讨论】:

【参考方案14】:

如果您使用的是 brew (macos)

你可以创建rb文件并使用brew来安装或降级flutter

创建名为flutter.rb的文件

cask "flutter" do
  version "2.2.0"

  url "https://storage.googleapis.com/flutter_infra_release/releases/stable/macos/flutter_macos_#version-st$
      verified: "storage.googleapis.com/flutter_infra_release/"
  name "Flutter SDK"
  desc "UI toolkit for building applications for mobile, web and desktop"
  homepage "https://flutter.dev/"

  livecheck do
    url "https://storage.googleapis.com/flutter_infra_release/releases/releases_macos.json"
    regex(%r/flutter[._-]macos[._-]v?(\d+(?:\.\d+)+)[._-]stable\.zipi)
  end

  auto_updates true

  binary "flutter/bin/dart"
  binary "flutter/bin/flutter"
end

然后使用brew install ./flutter.rb安装flutter或降级flutter版本

【讨论】:

【参考方案15】:

改变你的颤振版本的最简单的方法是:

    导航到这个link 并下载你想要的flutter版本。 提取文件并用它们替换旧的颤振目录。 如果您已经在使用 Flutter,则无需重新定义 PATH,否则,请确保环境变量仍与此文件夹/路径相关联。 运行 flutter --versionflutter doctor 以检查一切是否正常。

【讨论】:

【参考方案16】:

降级你的颤振版本:

从here 运行flutter downgrade v2.5.3 或您想要的任何颤振版本。


如果它导致任何错误,例如

频道“稳定”没有以前录制的版本。

或者说没有以前的版本,

然后,确保使用以下命令切换到正确的分支 stable, master, dev, beta

flutter channel master 

最后,运行flutter doctor 以检查一切是否顺利。

【讨论】:

以上是关于如何降级 Flutter SDK (Dart 1.x)的主要内容,如果未能解决你的问题,请参考以下文章

Flutter - 如何在不每次下载flutter和dart sdk的情况下切换flutter频道

如何修复 Flutter 中的“正在检查 Dart SDK 版本... << 此时出乎意料”错误?

如何替换 Flutter 中捆绑的 Dart SDK 以在 Apple Silicon (ARM64) 上原生运行?

Flutter开发环境配置:FlutterSDKAndroid SDKiOS SDK

如何修复 Flutter 中的“Checking Dart SDK version... << was unexpected at this time”错误?

卡在从 Flutter 引擎下载 Dart SDK