likes
comments
collection
share

fvm多版本Flutter管理器使用配置以及运行其他项目(旧版本)问题解决

作者站长头像
站长
· 阅读数 70

因为之前有用过nvm(多版本管理node的一个利器),这段时间搞flutter,GitHub下载了一些项目,但是由于本地是最新版本3.10.4,对于旧项目的话可能会不能兼容运行,例如启动项目会显示这种提示

fvm多版本Flutter管理器使用配置以及运行其他项目(旧版本)问题解决

如果想要运行启动其他项目来学习的话,flutter版本切换也不太好,所以想查一下有木有和nvm差不多的工具,查了一下还真有,记录一下配置

1.Dart环境配置

由于原本我就已经安装了flutter,并且配置好评该有的环境,Flutter是能用的,所以这里不需要配置

2.下载FVM

1. cmd 输入 pub global activate fvm

运行完之后底部会有有响应的路径(忘了截图),但一般都是下面这个路径,只是用户那里有所不同

C:\Users\用户\AppData\Local\Pub\Cache\bin

2. fvm环境变量配置(也就是上面下载FVM所在的位置)

fvm多版本Flutter管理器使用配置以及运行其他项目(旧版本)问题解决

3.配置FVM下载Flutter的地址(也就是后续你下载多个版本那些flutter所在的位置,尽量别设置C盘)

fvm多版本Flutter管理器使用配置以及运行其他项目(旧版本)问题解决

设置完之后,cmd中运行

fvm config --cache-path F:\Android\AndroidTool\FVM

fvm多版本Flutter管理器使用配置以及运行其他项目(旧版本)问题解决

3. 使用FVM

1.查看有什么版本 fvm releases

fvm多版本Flutter管理器使用配置以及运行其他项目(旧版本)问题解决

2.选择需要的版本下载

安装命令就是 fvm install 版本号,如下图我要安装2.8.1版本

fvm多版本Flutter管理器使用配置以及运行其他项目(旧版本)问题解决

温馨提示(奇怪的bug) 执行顺序,如果是

  1. fvm releases(查看有什么版本)
  2. fvm install 版本号
  3. fvm list (查看fvm缓存版本)
  4. fvm install 其他版本号(会报错!!!)

fvm多版本Flutter管理器使用配置以及运行其他项目(旧版本)问题解决 如果需要安装多个版本,中途别执行fvm list即可(我也不知道为什么)

  1. fvm releases(查看有什么版本)
  2. fvm install 版本号
  3. fvm install 其他版本号(成功!!!)

fvm多版本Flutter管理器使用配置以及运行其他项目(旧版本)问题解决

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.

fvm多版本Flutter管理器使用配置以及运行其他项目(旧版本)问题解决

解决:首先要切换到你所在的项目路径下面执行(也就是指定该项目flutter的版本),根据提示,执行 fvm use 2.8.1 --force即可

fvm多版本Flutter管理器使用配置以及运行其他项目(旧版本)问题解决

为此再次确认一下 执行 flutter pub global run fvm:main list

fvm多版本Flutter管理器使用配置以及运行其他项目(旧版本)问题解决

报错:dart版本不符合项目需求

解决方法:

再重新get一下包,但发现dart依然是不符合项目需求,因为一开始flutter定义的dart是高版本的,但是虽然该项目改了flutter版本,但是dart版本依然不符合,如下图

fvm多版本Flutter管理器使用配置以及运行其他项目(旧版本)问题解决

为此需要在你的项目根目录下新建一个 .vscode 文件,在该文件中再新建一个 settings.json文件,在文件中配置dart,如下图所示

{
    "dart.flutterSdkPath": ".fvm/flutter_sdk",
}

fvm多版本Flutter管理器使用配置以及运行其他项目(旧版本)问题解决

再次运行,结果还是报错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.

fvm多版本Flutter管理器使用配置以及运行其他项目(旧版本)问题解决 上网找到一个解决方式,找到项目下的android\app\src\main\AndroidManifest.xml文件,添加这一段代码,并删除一行代码,如下图所示

<meta-data
    android:name="flutterEmbedding"
    android:value="2" /> 

fvm多版本Flutter管理器使用配置以及运行其他项目(旧版本)问题解决

再次执行 fvm flutter pub get ,如下图所示,已经不会再次报错环境版本的问题,出来的问题是相对应用到的依赖版本问题,这个问题后面我是有问题的依赖,查看他们对应的版本,大概去尝试该依赖的其他版本来解决的

fvm多版本Flutter管理器使用配置以及运行其他项目(旧版本)问题解决

参考到的博文

This app is using a deprecated version of the Android embedding. To avoid unexpected runtime failure

dart VSCode中默认的fvm版本不工作

插件XXXXX使用的是Android嵌入的弃用版本

使用FVM管理Flutter SDK版本切换

转载自:https://juejin.cn/post/7250718023816151077
评论
请登录