0
点赞
收藏
分享

微信扫一扫

记一次升级Flutter SDK失败的光辉历史

提示:本文内容颇为复杂,涉及到的疑难杂症也颇多。

一切源于一个简单的指令:flutter upgrade,然后开启了崩溃的黑色3小时。

刚打开项目,看到控制台的编译log提示​​Flutter SDK​​​可以更新,行吧,那就更新吧,想着应该也是一个很简单的事情,因为我​​Android Studio​​也是经常更新的。

ok,编译结束,​​Terminal​​​中直接执行​​flutter upgrade​​,因为之前也在官方文档中看到过升级 Flutter的介绍,内容不多,以为不复杂呢,结果这一执行直接掉进了无底的深渊。。



对插件下手

执行之后显示如下:

D:\FlutterProjects\wanandroid_flutter>flutter upgrade
Checking Dart SDK version...
Downloading Dart SDK from Flutter engine 52c7a1e849a170be4b2b2fe34142ca2c0a6fea1f...
Downloading the Dart SDK using the BITS service failed, retrying with WebRequest...
Invoke-WebRequest : 请求被中止: 未能创建 SSL/TLS 安全通道。
所在位置 D:\flutter\flutter_windows_v1.2.1-stable\flutter\bin\internal\update_dart_sdk.ps1:62 字符: 5
+ Invoke-WebRequest -Uri $dartSdkUrl -OutFile $dartSdkZip
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest],WebException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand

Error: Unable to update Dart SDK. Retrying...

网上搜了一会,根本没结果,但是我此刻也依然没当回事,并开启了一些骚操作。。


上面看到要升级​​Dart​​​的sdk,因为dart的sdk是包含在flutter中的,在as在装flutter插件的时候还提示要装dart插件,
所以我直接从插件plugin下手了。

  • 卸载dart插件然后重启,卸载flutter插件然后重启。
  • 安装dart插件然后重启,安装flutter插件然后重启。

但是编译还是跑不起来,报什么错忘了,继续骚操作。。



对SDK下手

既然插件不行,行吧,那就直接手动升级sdk吧,此刻心态依然乐观,说来也是心大。

然后跑去github看了一下版本
记一次升级Flutter SDK失败的光辉历史_手动升级Flutter
纳尼,一天一个版本??? 这也太假了吧,我只要正式版就行啊。



然后又跑去​​官网​​​看看:
记一次升级Flutter SDK失败的光辉历史_升级flutter_02
嗯,这还差不多,我上个版本就是 ​​​1.2.1​​​的,最新​​1.5.4​​的,那行吧,下载下来

  • 解压
  • 删掉1.2.1的版本
  • 改环境变量
  • 重启AS

emmmm 还是不行,且文件全部报错,开始有一点慌了。。



然后想起来项目中的路径可能还没改呢,然后在设置中把flutter sdk路径改成1.5.4的,感觉应该可以了
记一次升级Flutter SDK失败的光辉历史_手动升级Flutter_03

改好之后,满怀着期待重新编译,依然不行,此刻心态已经有点崩了,现在是退不能退 进不能进了。

尝试一下​​invalidate and restart​​,emmm 也不行



报错如下:

Warning! This package referenced a Flutter repository via the .packages file that is no longer available. The repository from which the 'flutter' tool is currently executing will be used instead.
running Flutter tool: D:\flutter\flutter_windows_v1.5.4-hotfix.2-stable\flutter
previous reference : D:\flutter\flutter_windows_v1.2.1-stable\flutter
This can happen if you deleted or moved your copy of the Flutter repository, or if it was on a volume that is no longer mounted or has been mounted at a different location. Please check your system path to verify that you are running the expected version (run 'flutter --version' to see which flutter is on your path).

嗯,我也知道两次版本不对,可是在哪改、怎么改呢。



对项目配置下手

我开始在项目中找有没有编译时类似build产生的文件,最后在根目录的​​.package​​文件中发现还是1.2.1的版本的

# Generated by pub on 2019-05-28 10:50:34.749388.
async:file:///D:/flutter/flutter_windows_v1.2.1-stable/flutter/.pub-cache/hosted/dart-pub.mirrors.sjtug.sjtu.edu.cn%2547/async-2.0.8/lib/
boolean_selector:file:///D:/flutter/flutter_windows_v1.2.1-stable/flutter/.pub-cache/hosted/dart-pub.mirrors.sjtug.sjtu.edu.cn%2547/boolean_selector-1.0.4/lib/
charcode:file:///D:/flutter/flutter_windows_v1.2.1-stable/flutter/.pub-cache/hosted/dart-pub.mirrors.sjtug.sjtu.edu.cn%2547/charcode-1.1.2/lib/
collection:file:///D:/flutter/flutter_windows_v1.2.1-stable/flutter/.pub-cache/hosted/dart-pub.mirrors.sjtug.sjtu.edu.cn%2547/collection-1.14.11/lib/
cookie_jar:file:///D:/flutter/flutter_windows_v1.2.1-stable/flutter/.pub-cache/hosted/dart-pub.mirrors.sjtug.sjtu.edu.cn%2547/cookie_jar-1.0.0/lib/
cupertino_icons:file:///D:/flutter/flutter_windows_v1.2.1-stable/flutter/.pub-cache/hosted/dart-pub.mirrors.sjtug.sjtu.edu.cn%2547/cupertino_icons-0.1.2/lib/
dio:file:///D:/flutter/flutter_windows_v1.2.1-stable/flutter/.pub-cache/hosted/dart-pub.mirrors.sjtug.sjtu.edu.cn%2547/dio-2.1.3/lib/
flutter:file:///D:/flutter/flutter_windows_v1.2.1-stable/flutter/packages/flutter/lib/
flutter_page_indicator:file:///D:/flutter/flutter_windows_v1.2.1-stable/flutter/.pub-cache/hosted/dart-pub.mirrors.sjtug.sjtu.edu.cn%2547/flutter_page_indicator-0.0.3/lib/
flutter_swiper:file:///D:/flutter/flutter_windows_v1.2.1-stable/flutter/.pub-cache/hosted/dart-pub.mirrors.sjtug.sjtu.edu.cn%2547/flutter_swiper-1.1.6/lib/
flutter_test:file:///D:/flutter/flutter_windows_v1.2.1-stable/flutter/packages/flutter_test/lib/
flutter_webview_plugin:file:///D:/flutter/flutter_windows_v1.2.1-stable/flutter/.pub-cache/hosted/dart-pub.mirrors.sjtug.sjtu.edu.cn%2547/flutter_webview_plugin-0.3.5/lib/
fluttertoast:file:///D:/flutter/flutter_windows_v1.2.1-stable/flutter/.pub-cache/hosted/dart-pub.mirrors.sjtug.sjtu.edu.cn%2547/fluttertoast-3.0.4/lib/
matcher:file:///D:/flutter/flutter_windows_v1.2.1-stable/flutter/.pub-cache/hosted/dart-pub.mirrors.sjtug.sjtu.edu.cn%2547/matcher-0.12.3+1/lib/
meta:file:///D:/flutter/flutter_windows_v1.2.1-stable/flutter/.pub-cache/hosted/dart-pub.mirrors.sjtug.sjtu.edu.cn%2547/meta-1.1.6/lib/
path:file:///D:/flutter/flutter_windows_v1.2.1-stable/flutter/.pub-cache/hosted/dart-pub.mirrors.sjtug.sjtu.edu.cn%2547/path-1.6.2/lib/
pedantic:file:///D:/flutter/flutter_windows_v1.2.1-stable/flutter/.pub-cache/hosted/dart-pub.mirrors.sjtug.sjtu.edu.cn%2547/pedantic-1.4.0/lib/
quiver:file:///D:/flutter/flutter_windows_v1.2.1-stable/flutter/.pub-cache/hosted/dart-pub.mirrors.sjtug.sjtu.edu.cn%2547/quiver-2.0.1/lib/
sky_engine:file:///D:/flutter/flutter_windows_v1.2.1-stable/flutter/bin/cache/pkg/sky_engine/lib/
source_span:file:///D:/flutter/flutter_windows_v1.2.1-stable/flutter/.pub-cache/hosted/dart-pub.mirrors.sjtug.sjtu.edu.cn%2547/source_span-1.5.4/lib/
stack_trace:file:///D:/flutter/flutter_windows_v1.2.1-stable/flutter/.pub-cache/hosted/dart-pub.mirrors.sjtug.sjtu.edu.cn%2547/stack_trace-1.9.3/lib/
stream_channel:file:///D:/flutter/flutter_windows_v1.2.1-stable/flutter/.pub-cache/hosted/dart-pub.mirrors.sjtug.sjtu.edu.cn%2547/stream_channel-1.6.8/lib/
string_scanner:file:///D:/flutter/flutter_windows_v1.2.1-stable/flutter/.pub-cache/hosted/dart-pub.mirrors.sjtug.sjtu.edu.cn%2547/string_scanner-1.0.4/lib/
term_glyph:file:///D:/flutter/flutter_windows_v1.2.1-stable/flutter/.pub-cache/hosted/dart-pub.mirrors.sjtug.sjtu.edu.cn%2547/term_glyph-1.1.0/lib/
test_api:file:///D:/flutter/flutter_windows_v1.2.1-stable/flutter/.pub-cache/hosted/dart-pub.mirrors.sjtug.sjtu.edu.cn%2547/test_api-0.2.2/lib/
transformer_page_view:file:///D:/flutter/flutter_windows_v1.2.1-stable/flutter/.pub-cache/hosted/dart-pub.mirrors.sjtug.sjtu.edu.cn%2547/transformer_page_view-0.1.6/lib/
typed_data:file:///D:/flutter/flutter_windows_v1.2.1-stable/flutter/.pub-cache/hosted/dart-pub.mirrors.sjtug.sjtu.edu.cn%2547/typed_data-1.1.6/lib/
vector_math:file:///D:/flutter/flutter_windows_v1.2.1-stable/flutter/.pub-cache/hosted/dart-pub.mirrors.sjtug.sjtu.edu.cn%2547/vector_math-2.0.8/lib/
wanandroid_flutter:lib/

文件备份一下然后直接删掉,看看会不会编译生成,结果没有



那行吧,直接把路径替换了
记一次升级Flutter SDK失败的光辉历史_升级flutter_04
天呐,依然不行,搞这个的时间早都超出预算了,心态已经崩了,只能硬着头皮上了。

只能在项目设置中尝试了。



打开​​Project Structure​​​,果然他丫的还是有问题,但是看到了黎明的曙光。
记一次升级Flutter SDK失败的光辉历史_flutter upgrade_05

  • 1,还是上面的问题。
  • 2,果然还是有一个路径没有改
  • 3,kotlin的直接忽略

先改掉2的路径问题
记一次升级Flutter SDK失败的光辉历史_升级flutter_06
把1.2.1的版本路径换成1.5.4的路径即可。



但是1要fix的话提示我全部移除,那行吧,试试。

编译一下还是不行,此刻已然是生无可恋了。

因为之前打开了​​pubspec.yaml​​​文件查看是不是有配置什么的没改,然后随手点了下​​packages get​​​,结果OK了!!!
记一次升级Flutter SDK失败的光辉历史_手动升级Flutter_07

复盘

因为是手动升级的flutter SDK,所以项目中除了自带的库以外还有第三方的库,都还是原来的路径,在把全部路径修改完之后,需要​​packages get​​ 重新下载到新版本的路径中去才能引用。

之前也尝试过​​packages upgrade​​,但是等了半天没反应,也没在任务管理中看到下载,所以就没当回事。。

翻墙这种小事就不提了。。



期间也遇到

Waiting for another flutter command to release the startup lock...

解决办法:

  • 打开任务管理器,结束掉​​Android Studio​​​ 和​​Dart.exe​
  • 删除​​flutter\bin\cache​​​目录下的​​lockfile​​文件,然后重启AS即可


本文旨为flutter upgrade 升级flutter失败之后手动升级的记录,没准你一下就成功了。。

心累。。



官方文档:​​https://flutter.dev/​​




举报

相关推荐

0 条评论