热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

提示:本文内容颇为复杂,涉及到的疑难杂症也颇多。一切源于一个简单的指令:flutterupgrade,然后开启了崩溃的黑色3

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

一切源于一个简单的指令: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.InvokeWebRequestCommandError: Unable to update Dart SDK. Retrying...

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


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

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

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



对SDK下手

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

然后跑去github看了一下版本
在这里插入图片描述
纳尼,一天一个版本??? 这也太假了吧,我只要正式版就行啊。


然后又跑去官网看看:
在这里插入图片描述
嗯,这还差不多,我上个版本就是 1.2.1的,最新1.5.4的,那行吧,下载下来

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

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


然后想起来项目中的路径可能还没改呢,然后在设置中把flutter sdk路径改成1.5.4的,感觉应该可以了
在这里插入图片描述

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

尝试一下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\flutterprevious 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/

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


那行吧,直接把路径替换了
在这里插入图片描述
天呐,依然不行,搞这个的时间早都超出预算了,心态已经崩了,只能硬着头皮上了。

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


打开Project Structure,果然他丫的还是有问题,但是看到了黎明的曙光。
在这里插入图片描述

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

先改掉2的路径问题
在这里插入图片描述
把1.2.1的版本路径换成1.5.4的路径即可。


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

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

因为之前打开了pubspec.yaml文件查看是不是有配置什么的没改,然后随手点了下packages get,结果OK了!!!
在这里插入图片描述

复盘

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

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

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


期间也遇到

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

解决办法:

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



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

心累。。


Flutter 环境配置:https://blog.csdn.net/yechaoa/article/details/89150852

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



推荐阅读
  • javax.mail.search.BodyTerm.matchPart()方法的使用及代码示例 ... [详细]
  • 在Linux系统中避免安装MySQL的简易指南
    在Linux系统中避免安装MySQL的简易指南 ... [详细]
  • 如何将TS文件转换为M3U8直播流:HLS与M3U8格式详解
    在视频传输领域,MP4虽然常见,但在直播场景中直接使用MP4格式存在诸多问题。例如,MP4文件的头部信息(如ftyp、moov)较大,导致初始加载时间较长,影响用户体验。相比之下,HLS(HTTP Live Streaming)协议及其M3U8格式更具优势。HLS通过将视频切分成多个小片段,并生成一个M3U8播放列表文件,实现低延迟和高稳定性。本文详细介绍了如何将TS文件转换为M3U8直播流,包括技术原理和具体操作步骤,帮助读者更好地理解和应用这一技术。 ... [详细]
  • Spring Boot 中配置全局文件上传路径并实现文件上传功能
    本文介绍如何在 Spring Boot 项目中配置全局文件上传路径,并通过读取配置项实现文件上传功能。通过这种方式,可以更好地管理和维护文件路径。 ... [详细]
  • 在分析Android的Audio系统时,我们对mpAudioPolicy->get_input进行了详细探讨,发现其背后涉及的机制相当复杂。本文将详细介绍这一过程及其背后的实现细节。 ... [详细]
  • 最详尽的4K技术科普
    什么是4K?4K是一个分辨率的范畴,即40962160的像素分辨率,一般用于专业设备居多,目前家庭用的设备,如 ... [详细]
  • 在CentOS 7环境中安装配置Redis及使用Redis Desktop Manager连接时的注意事项与技巧
    在 CentOS 7 环境中安装和配置 Redis 时,需要注意一些关键步骤和最佳实践。本文详细介绍了从安装 Redis 到配置其基本参数的全过程,并提供了使用 Redis Desktop Manager 连接 Redis 服务器的技巧和注意事项。此外,还探讨了如何优化性能和确保数据安全,帮助用户在生产环境中高效地管理和使用 Redis。 ... [详细]
  • 基于Net Core 3.0与Web API的前后端分离开发:Vue.js在前端的应用
    本文介绍了如何使用Net Core 3.0和Web API进行前后端分离开发,并重点探讨了Vue.js在前端的应用。后端采用MySQL数据库和EF Core框架进行数据操作,开发环境为Windows 10和Visual Studio 2019,MySQL服务器版本为8.0.16。文章详细描述了API项目的创建过程、启动步骤以及必要的插件安装,为开发者提供了一套完整的开发指南。 ... [详细]
  • 在《Linux高性能服务器编程》一书中,第3.2节深入探讨了TCP报头的结构与功能。TCP报头是每个TCP数据段中不可或缺的部分,它不仅包含了源端口和目的端口的信息,还负责管理TCP连接的状态和控制。本节内容详尽地解析了TCP报头的各项字段及其作用,为读者提供了深入理解TCP协议的基础。 ... [详细]
  • 在对WordPress Duplicator插件0.4.4版本的安全评估中,发现其存在跨站脚本(XSS)攻击漏洞。此漏洞可能被利用进行恶意操作,建议用户及时更新至最新版本以确保系统安全。测试方法仅限于安全研究和教学目的,使用时需自行承担风险。漏洞编号:HTB23162。 ... [详细]
  • 本指南介绍了如何在ASP.NET Web应用程序中利用C#和JavaScript实现基于指纹识别的登录系统。通过集成指纹识别技术,用户无需输入传统的登录ID即可完成身份验证,从而提升用户体验和安全性。我们将详细探讨如何配置和部署这一功能,确保系统的稳定性和可靠性。 ... [详细]
  • 在Android平台中,播放音频的采样率通常固定为44.1kHz,而录音的采样率则固定为8kHz。为了确保音频设备的正常工作,底层驱动必须预先设定这些固定的采样率。当上层应用提供的采样率与这些预设值不匹配时,需要通过重采样(resample)技术来调整采样率,以保证音频数据的正确处理和传输。本文将详细探讨FFMpeg在音频处理中的基础理论及重采样技术的应用。 ... [详细]
  • 卓盟科技:动态资源加载技术的兼容性优化与升级 | Android 开发者案例分享
    随着游戏内容日益复杂,资源加载过程已不仅仅是简单的进度显示,而是连接玩家与开发者的桥梁。玩家对快速加载的需求越来越高,这意味着开发者需要不断优化和提升动态资源加载技术的兼容性和性能。卓盟科技通过一系列的技术创新,不仅提高了加载速度,还确保了不同设备和系统的兼容性,为用户提供更加流畅的游戏体验。 ... [详细]
  • 在Linux系统中,网络配置是至关重要的任务之一。本文详细解析了Firewalld和Netfilter机制,并探讨了iptables的应用。通过使用`ip addr show`命令来查看网卡IP地址(需要安装`iproute`包),当网卡未分配IP地址或处于关闭状态时,可以通过`ip link set`命令进行配置和激活。此外,文章还介绍了如何利用Firewalld和iptables实现网络流量控制和安全策略管理,为系统管理员提供了实用的操作指南。 ... [详细]
  • Android中将独立SO库封装进JAR包并实现SO库的加载与调用
    在Android开发中,将独立的SO库封装进JAR包并实现其加载与调用是一个常见的需求。本文详细介绍了如何将SO库嵌入到JAR包中,并确保在外部应用调用该JAR包时能够正确加载和使用这些SO库。通过这种方式,开发者可以更方便地管理和分发包含原生代码的库文件,提高开发效率和代码复用性。文章还探讨了常见的问题及其解决方案,帮助开发者避免在实际应用中遇到的坑。 ... [详细]
author-avatar
巴萨小Q
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有