Flutter:使用FVM安装多个Flutter SDK 版本和使用教程
一、FVM简介
FVM全称:Flutter Version Management
FVM通过引用每个项目使用的Flutter SDK版本来帮助实现一致的应用程序构建。它还允许您安装多个Flutter版本,以快速验证和测试您的应用程序即将发布的Flutter版本,而无需每次等待Flutter安装。
二、需求场景
- 需要在同一时间有多个Flutter SDK。
- 测试新的SDK特性需要在Channels之间切换。
- 通道之间的切换很慢,每次都需要重新安装。
- 没有办法跟踪应用中最新的工作/使用的SDK版本。
- 主要的Flutter更新需要迁移机器上的所有Flutter应用程序。
- 团队中其他开发人员之间的开发环境不一致。
三、安装FVM
3.1 安装方式
- 方式一:下载对应的电脑系统fvm安装包进行安装
fvm下载地址:https://github.com/leoafarias/fvm/releases
- 方式二:通过Dart全局安装
指令:dart pub global activate fvm
3.2 配置Dart环境
- 方式一到Dart官网下载对应的Dart SDK
dart官网地址:https://dart.cn/get-dart/- 方式二:从下载的FlutterSDK中获取
下面在windows系统采用方式二配置Dart环境
Dart SDK在FlutterSDK目录中的位置:flutter\bin\cache\dart-sdk,如下图所示
将dart-sdk添加到系统环境变量
检查Dart SDK环境是否配置好
运行窗口执行:dart --version,如下图所示,表示配置好了
3.3 使用Dart安装FVM
在 Windows PowerShell 窗口里执行下面指令
dart pub global activate fvm
四、配置FVM环境变量
4.1 查看fvm安装位置
4.2 将fvm安装路径添加到系统环境变量里
参考:
https://dart.dev/tools/pub/cmd/pub-global#running-a-script-from-your-path
4.3 查看FVM版本
指令:fvm -v 或者 fvm --version
Windows PowerShell 窗口执行指令如下图
五、配置FVM下载Flutter SDK的位置
指令:fvm config --cache-path E:\FVM_Cache
六、FVM常用的指令
常用的有效指令如下图所示:
使用示例
fvm list 查看已安装Flutter SDK 所有版本
提示
3.24.5 和 flutter_flutter是下载好的文件直接复制到 E:\FVM_Cache\versions目录里的
使用fvm指令安装指定flutter sdk的版本
- 首页先查看flutter官网发布的版本列表
- 执行fvm install 版本号名称
示例:fvm install 3.24.5
切换Flutter SDK版本
- fvm use 版本号名称
示例:fvm use flutter_flutter
相关文章:
Flutter:使用FVM安装多个Flutter SDK 版本和使用教程
一、FVM简介 FVM全称:Flutter Version Management FVM通过引用每个项目使用的Flutter SDK版本来帮助实现一致的应用程序构建。它还允许您安装多个Flutter版本,以快速验证和测试您的应用程序即将发布的Flutter版本,而无需每次等待Flutter安装。…...
关于物联网的基础知识(二)——物联网体系结构分层
成长路上不孤单😊😊😊😊😊😊 【14后😊///计算机爱好者😊///持续分享所学😊///如有需要欢迎收藏转发///😊】 今日分享关于物联网的基础知识(二&a…...
[程序设计]—代理模式
[程序设计]—代理模式👳 本文章记录学习于——52.面向切面:AOP-场景模拟_哔哩哔哩_bilibili 最近闲来无事,在学习Spring的源码: 后面慢慢更新源码系列blog,希望多多关注🙏🙏 目前已经总结的b…...
26、【OS】【Nuttx】用cmake构建工程
背景 之前wiki 14、【OS】【Nuttx】Nsh中运行第一个程序 都是用 make 构建,准备切换 cmake 进行构建,方便后续扩展开发 Nuttx cmake 适配 nuttx项目路径下输入 make distclean,清除之前工程配置 adminpcadminpc:~/nuttx_pdt/nuttx$ make …...
C#中序列化的选择:JSON、XML、二进制与Protobuf详解
C#中序列化的选择:JSON、XML、二进制与Protobuf详解 在C#开发中,序列化是将对象转换为可存储或传输的格式的过程,而反序列化则是将存储或传输的数据重新转换为对象的过程。选择合适的序列化方式对应用程序的性能、可维护性和兼容性至关重要。…...
单片机实现模式转换
[任务] 要求通过单片机实现以下功能: 1.单片机有三种工作模式(定义全局变量MM表示模式,MM1,2,3表示三种不同的模式) LED控制模式 风扇控制模式 蜂鸣器控制模式 2.可以在某一个模式下通过拓展板KEY1按键控制设备 (按…...
Shader -> SweepGradient扫描渐变着色器详解
XML文件 <com.example.myapplication.MyViewxmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_gravity"center"android:layout_height"400dp"/>自定义View代码 c…...
鼠标过滤驱动
文章目录 概述代码参考资料 概述 其编写过程大体与键盘过滤驱动相似,只需要切换一下附加的目标设备以及创建的设备类型等。但在该操作后依然无法捕获到Vmware创建的win7操作系统的鼠标irp信息,于是通过在获取鼠标驱动,遍历其所有的设备进而附…...
【深度学习】数据操作入门
数据操作 为了能够完成各种数据操作,我们需要某种方法来存储和操作数据。 通常,我们需要做两件重要的事:(1)获取数据;(2)将数据读入计算机后对其进行处理。 如果没有某种方法来存储…...
WIFIAP项目 5G RX二次谐波超标案例分析
一、 问题的现象及描述 采用博通WIFI方案方案的两个项目在做CE高频杂散测试时发现5G RX出现10.359 GHz的高频杂散点,通过更换信道,该杂散点跟着改变,最终确认该频率是5G主信号的二倍频;如下图: 二、 问题分析 由于…...
HarmonyOS(ArkUI框架介绍)
ArkUI框架介绍 ArkUI简介 基本概念 UI: 即用户界面。开发者可以将应用的用户界面设计为多个功能页面,每个页面进行单独的文件管理,并通过页面路由API完成页面间的调度管理如跳转、回退等操作,以实现应用内的功能解耦。 组件&…...
在 Ubuntu 下通过 Docker 部署 MySQL 服务器
引言 Docker 是一个开源的容器化平台,允许开发者将应用及其依赖打包成一个标准化的单元。MySQL 是一个广泛使用的关系型数据库管理系统,因其高性能、可靠性和易用性,成为许多应用的首选数据库。结合 Docker 和 MySQL,可以轻松地创…...
MCU 和 PSK
在加密和认证领域,MCU 和 PSK 是两个不同的概念,分别涉及硬件和密钥管理。下面是它们的含义和相关解释: 1. MCU 全称:Microcontroller Unit(微控制单元) 用途: MCU 是一种集成了 CPU、内存&am…...
Linux:进程概念(二.查看进程、父进程与子进程、进程状态详解)
目录 1. 查看进程 1.1 准备工作 1.2 指令:ps—显示当前系统中运行的进程信息 1.3 查看进程属性 1.4 通过 /proc 系统文件夹看进程 2. 父进程与子进程 2.1 介绍 2.2 getpid() \getppid() 2.3 fork()函数—通过系统调用创建进程 fork()函数疑问 3. 进程状态…...
苍穹外卖07——来单提醒和客户催单(涉及SpringTask、WebSocket协议、苍穹外卖跳过微信支付同时保证可以收到订单功能)
Spring Task介绍 应用场景: 信用卡每月还款提醒银行贷款每月还款提醒火车票销售系统处理未付款订单入职纪念日为用户发送通知 cron表达式 cron表达式其实就是一个字符串,通过cron表达式可以定义任务触发的时间。 构成规则:分为6或7个域&…...
C语言二级考试
你必须知道的 二级考试不是编写程序,或者说不只是编程的考核,它还会考核计算机C语言相关语言还有内涵等基础知识,比较全面综合(说人话,要看最新考纲具备一定的基础知识) 考试时间 120 分钟 分值 100 分&…...
IDEA Maven构建时报错:无效的目标发行版17
报错分析 报错原因:Maven 构建时,Java 版本配置不匹配 我安装的JDK版本是1.8,但由于种种原因,Maven构建时指定了 Java 17 作为目标发行版,从而导致错误 解决方案 首先,java -version,查看环…...
javafx 将项目打包为 Windows 的可执行文件exe
要将 JavaFX 项目打包为 .exe 文件,你可以使用一些工具将你的应用程序封装为 Windows 可执行文件。以下是两种常用的方法: 方法 1:使用 jpackage(适用于 JDK 14 及更高版本) jpackage 是 JDK 内置的工具,…...
Python操作Excel的库openpyxl使用入门
openpyxl 是一个用于读写 Excel 2010 xlsx/xlsm/xltx/xltm 文件的 Python 库。以下是一些 openpyxl 的基本使用方法: 安装 openpyxl 首先,确保已经安装了 openpyxl。如果没有安装,可以使用以下命令进行安装: pip install openp…...
数据通过canal 同步es,存在延迟问题,解决方案
当使用 Canal 同步数据到 Elasticsearch(ES)时,出现延迟问题通常源于多个因素,如 Canal 配置、网络延迟、ES 的负载和性能瓶颈等。以下是一些解决方案,帮助减少和解决延迟问题: 1. 优化 Canal 配置 Canal…...
【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15
缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下: struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...
阿里云ACP云计算备考笔记 (5)——弹性伸缩
目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...
使用分级同态加密防御梯度泄漏
抽象 联邦学习 (FL) 支持跨分布式客户端进行协作模型训练,而无需共享原始数据,这使其成为在互联和自动驾驶汽车 (CAV) 等领域保护隐私的机器学习的一种很有前途的方法。然而,最近的研究表明&…...
HTML 列表、表格、表单
1 列表标签 作用:布局内容排列整齐的区域 列表分类:无序列表、有序列表、定义列表。 例如: 1.1 无序列表 标签:ul 嵌套 li,ul是无序列表,li是列表条目。 注意事项: ul 标签里面只能包裹 li…...
测试markdown--肇兴
day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...
如何在看板中有效管理突发紧急任务
在看板中有效管理突发紧急任务需要:设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP(Work-in-Progress)弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中,设立专门的紧急任务通道尤为重要,这能…...
【2025年】解决Burpsuite抓不到https包的问题
环境:windows11 burpsuite:2025.5 在抓取https网站时,burpsuite抓取不到https数据包,只显示: 解决该问题只需如下三个步骤: 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...
USB Over IP专用硬件的5个特点
USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中,从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备(如专用硬件设备),从而消除了直接物理连接的需要。USB over IP的…...
Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战
说明:这是一个机器学习实战项目(附带数据代码文档),如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下,风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...
探索Selenium:自动化测试的神奇钥匙
目录 一、Selenium 是什么1.1 定义与概念1.2 发展历程1.3 功能概述 二、Selenium 工作原理剖析2.1 架构组成2.2 工作流程2.3 通信机制 三、Selenium 的优势3.1 跨浏览器与平台支持3.2 丰富的语言支持3.3 强大的社区支持 四、Selenium 的应用场景4.1 Web 应用自动化测试4.2 数据…...













