fvm多版本Flutter管理器使用配置以及运行其他项目(旧版本)问题解决
因为之前有用过nvm(多版本管理node的一个利器),这段时间搞flutter,GitHub下载了一些项目,但是由于本地是最新版本3.10.4
,对于旧项目的话可能会不能兼容运行,例如启动项目会显示这种提示
如果想要运行启动其他项目来学习的话,flutter版本切换也不太好,所以想查一下有木有和nvm差不多的工具,查了一下还真有,记录一下配置
1.Dart环境配置
由于原本我就已经安装了flutter,并且配置好评该有的环境,Flutter是能用的,所以这里不需要配置
2.下载FVM
1. cmd 输入 pub global activate fvm
运行完之后底部会有有响应的路径(忘了截图),但一般都是下面这个路径,只是用户那里有所不同
C:\Users\用户\AppData\Local\Pub\Cache\bin
2. fvm环境变量配置(也就是上面下载FVM所在的位置)
3.配置FVM下载Flutter的地址(也就是后续你下载多个版本那些flutter所在的位置,尽量别设置C盘)
设置完之后,cmd中运行
fvm config --cache-path F:\Android\AndroidTool\FVM
3. 使用FVM
1.查看有什么版本 fvm releases
2.选择需要的版本下载
安装命令就是 fvm install 版本号,如下图我要安装2.8.1
版本
温馨提示(奇怪的bug) 执行顺序,如果是
- fvm releases(查看有什么版本)
- fvm install 版本号
- fvm list (查看fvm缓存版本)
- fvm install 其他版本号(会报错!!!)
如果需要安装多个版本,中途别执行
fvm list
即可(我也不知道为什么)
- fvm releases(查看有什么版本)
- fvm install 版本号
- fvm install 其他版本号(成功!!!)
4.使用指定版本
由于想要运行的是旧版本的项目(项目是从GitHub拉下来打算参考运行一下的,但是由于我本地是最新版本,项目所需的版本不一,导致我需要做一下处理)
查看FVM所拥有的版本号 fvm list
使用某个版本 fvm use 2.8.1
报错:Not a Flutter project. Run this FVM command at the root of a Flutter project or use --force to bypass this.
解决:首先要切换到你所在的项目路径下面执行(也就是指定该项目flutter的版本),根据提示,执行 fvm use 2.8.1 --force
即可
为此再次确认一下 执行 flutter pub global run fvm:main list
报错:dart版本不符合项目需求
解决方法:
再重新get一下包,但发现dart依然是不符合项目需求,因为一开始flutter定义的dart是高版本的,但是虽然该项目改了flutter版本,但是dart版本依然不符合,如下图
为此需要在你的项目根目录下新建一个 .vscode 文件,在该文件中再新建一个 settings.json文件,在文件中配置dart,如下图所示
{
"dart.flutterSdkPath": ".fvm/flutter_sdk",
}
再次运行,结果还是报错This app is using a deprecated version of the Android embedding. To avoid unexpected runtime failures, or future build failures, try to migrate this app to the V2 embedding.
上网找到一个解决方式,找到项目下的android\app\src\main\AndroidManifest.xml文件,添加这一段代码,并删除一行代码,如下图所示
<meta-data
android:name="flutterEmbedding"
android:value="2" />
再次执行 fvm flutter pub get
,如下图所示,已经不会再次报错环境版本的问题,出来的问题是相对应用到的依赖版本问题,这个问题后面我是有问题的依赖,查看他们对应的版本,大概去尝试该依赖的其他版本来解决的
参考到的博文
This app is using a deprecated version of the Android embedding. To avoid unexpected runtime failure
转载自:https://juejin.cn/post/7250718023816151077