前言

我的主机上的Flutter 本地的分支是在 beta,因为去年想尝鲜Flutter Web,所以一直没切回来stable分支。

早上打开VSCode,右下角弹出了Flutter upgrade的选项,无意中看见自己的flutter 版本居然还在 1.12.13 ,手贱冲动开始了Flutter 版本更新,然后弹出waiting lock的提示,没管它继续让它下载,然后过了一会提示flutter upgrade失败了。

接着启动项目调试,发现就失败了,报错的信息有几百行,都是某些函数底部有红波浪线提示报错了,最后的原因为:

Cause:Target kernel_snapshot failed: Exception: Errors during snapshot creation: null...

但是运行 flutter doctor命令却是一切正常的,都是打勾勾的。于是开始漫长查询报错解决:

在StackOverflow和Flutter官方的issue上,找到了应该比较靠谱的两个解决方法

  1. Download latest version flutter sdk and setup. 更新Flutter SDK 最新的版本并设置
  2. Fix it by creating a new project and copying the code from the old one.创建一个新项目

因为我是因为更新版本才导致的出错,所以我打算先选择第二个方法,创建一个新项目试试看,

尝试一:创建新项目

创建后,运行 flutter doctor,一切正常,然后运行启动调试 flutter run ,报错了和旧项目一样的报错信息。

说明这个方法行不通,我的问题不跟新旧项目配置有关。

尝试二:切换分支到stable

使用flutter channel stable 失败,显示:Your local changes to the following files would be overwritte。

然后列出了很多修改过的文件与远程库分支不相同。

尝试三:flutter 当前分支执行pull,与远程同步(更新到最新版本) 成功解决!

定位到我的主机上存放flutter的根目录 C:\flutter 下

执行git pull,出现了

git error:fatal: unable to access 'https://github.com/flutter/flutter.git/': OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 10054。

新的问题,先解决这个ErrorCode:10054问题的方案:

执行 git config --global http.sslVerify false

然后因为我的本地beta分支的文件已经落后远程官方库的beta分支接近2000次的commit了,所以我打算直接让远程的文件直接覆盖掉我的本地文件

执行命令:git reset --hard ,回退到上一个commit的版本,也就是打算消除本地与远程的差异。

执行命令:git pull origin beta,然鹅又出现错误了:

error: The following untracked working tree files would be overwritten by merge:后面接着一大堆文件和列表balabala

行吧,又得解决新的问题,

解决Error:The following untracked working tree files would be overwritten by merge的方案:

执行命令 git clean -d -fx会判断删除本地与远程不相同的文件,当有无法删除的文件不断会询问你 y or n,我遇到的 dart.exe 无法删除就一直问我 y / n ? ,最后选择了 n ,命令就继续执行下去了,接着程序自动remove了很多很多文件。

然后我又又又再次执行 git pull,经过漫长等待,这次成功了,下面是成功时候的截图,将本地分支(我的是beta),更新到与flutter Github上beta分支的最新版本了。

接着重启VSCode,运行Flutter Doctor,会重新进行依赖和下载Flutter Doctor所需要的tools,经过一段时间的等待后,Flutter Doctor显示的结果依旧正常,不过Flutter SDK的版本已经从最初的1.12.13 更新为1.18.0了

终端运行 flutter run,新项目和旧项目都能正常的在真机和模拟器上运行了。折腾了一个下午终于搞定了,也说明这次补坑之旅可以告一段落了。

顺带一提

我的本地Flutter分支是 beta,如果你是stable或其他的分支,解决的方法也是同理的。

还有就是本次填坑的时候我没有使用梯子(梯子刚好坏了),所以说如果你没有梯子也不会有影响的,可能也就等待时间长一点点吧~

总结

如非必要或者做好要漫长填坑的准备,就不要点击更新Flutter SDK或者执行flutter upgrade,否则你永远猜不到接下来等待你的坑是什么。

我是刚刚接触Flutter的小白一个,不喜勿喷哈哈,也希望我的填坑分享对您有所帮助吧~

Flutter upgrade更新版本引发的无法启动调试APP的错误 target:kernel_snapshot failed”的更多相关文章

  1. 服务器安装ubuntu 14.04 server,开机启动屏幕不停滚动错误WRITE SAME failed. Manually zeroing

    昨天给服务器上安装了一个Ubuntu-14.04-server系统,安装完成后系统可以正常启动,但屏幕上一直滚动着一个错误,sda1:WRITE SAME failed. Manually zeroi ...

  2. Tomcat启动报Error listenerStart错误 Context [] startup failed due to previous errors

    本文转载自xpenxpen 今天启动Tomcat启动不了,报以下错: org.apache.catalina.core.StandardContext startInternal SEVERE: Er ...

  3. Flutter 1.17版本重磅发布

    Flutter 1.17 是2020年的第一个稳定版本,此版本包括iOS平台Metal支持(性能更快),新的Material组件,新的Network跟踪工具等等! 对所有人来说,今年是充满挑战的一年. ...

  4. ROS(indigo) 安装和使用更新版本的Gazebo----3,4,5,6,7 附:中国机器人大赛中型组仿真比赛说明

    ROS(indigo) 安装和使用更新版本的Gazebo,本文以7为例. Gazebo7支持更多新的功能,如果使用下面命令安装ROS(indigo): ~$ sudo apt-get install ...

  5. 升级SilverLight为5.1.50907.0后,VS调试时报“无法启动调试--未安装 Silverlight Developer 运行时。请安装一个匹配版本”的处理办法

    作者: zyl910 一.问题 今天需要调试一个SilverLight程序.运行时ie弹出了一个升级提示,于是手贱点了升级. 随后便悲剧了,VS调试时报"无法启动调试--未安装 Silver ...

  6. Android 6.0 7.0 8.0 一个简单的app内更新版本-okgo app版本更新

    登陆时splash初始页调用接口检查app版本.如有更新,使用okGo的文件下载,保存到指定位置,调用Android安装apk. <!-- Android 8.0 (Android O)为了针对 ...

  7. Docker 更新版本

    Docker 更新版本 原来版本 1.10 更新后的版本 19.03.1 更新 Docker 版本需要注意的问题: 注意系统是否支持新版本的储存驱动. 19.03.01 版本默认使用的储存驱动是 ov ...

  8. [转帖]Docker 更新版本 以及 data-root

    Docker 更新版本 https://www.cnblogs.com/operationhome/archive/2019/08/11/11322150.html 园友说 docker 使用了 da ...

  9. 低JAVA版本,高兼容性启动

    低JAVA版本,高兼容性启动 背景:部分操作系统java环境低版本,暂时无法更新最新版本,新系统需要使用较高版本Java环境 1.JAVA低版本不兼容当前应用 2.解压安装JAVA,无需配置环境变量 ...

随机推荐

  1. 向大家介绍我的新书:《基于股票大数据分析的Python入门实战》

    我在公司里做了一段时间Python数据分析和机器学习的工作后,就尝试着写一本Python数据分析方面的书.正好去年有段时间股票题材比较火,就在清华出版社夏老师指导下构思了这本书.在这段特殊时期内,夏老 ...

  2. luoguP3121解题报告

    p3121 本题首先利用一个手写栈,使元素可以快速出栈,再利用栈快速查询上一个元素在trie中的位置.

  3. 大技霸教你远程执行Linux脚本和命令

    如果现在需要在 Linux 服务器上执行一系列命令(比如搭建 LNMP 环境)我应该会第一时间想到想办法写个 Shell 脚本,然后扔上去执行以下看看结果. 然而一贯懒惰的我并不想这么去执行 Shel ...

  4. P2444 [POI2000]病毒 AC自动机

    P2444 [POI2000]病毒 #include <bits/stdc++.h> using namespace std; ; struct Aho_Corasock_Automato ...

  5. HTML标签和属性三

    八.列表 1.列表的作用 让数据有条理的显示,在数据之前添加标识 但是现在页面布局,经常会使用到无序列表 2.列表的组成 ①有序列表 <ol> <li></li> ...

  6. python3.x 基础八:socket网络编程

    Socket socket就是一直以来说的“套接字”,用于描述:ip:端口,是通信链的句柄,客户端通过这个句柄进行请求和响应 普通文件的操作顺序:打开-读写-关闭,针对的是文件 socket是特殊的文 ...

  7. (数据科学学习手札84)基于geopandas的空间数据分析——空间计算篇(上)

    本文示例代码.数据及文件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 在本系列之前的文章中我们主要讨论了g ...

  8. PAT-1078 Hashing (散列表 二次探测法)

    1078. Hashing The task of this problem is simple: insert a sequence of distinct positive integers in ...

  9. hdu6007 spfa+完全背包

    题意:给你M,N,K,代表你有M点法力值,N个物品,K个制造方式 接下来N行,如果以1开头则代表既能卖又能合成,0代表只能卖. 然后K行,每行第一个数是要合成的东西,第二个数代表有几对,每对第一个数是 ...

  10. poj3648 2-SAT进阶 记录点拓扑

    Wedding Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 10556   Accepted: 3220   Specia ...