新装电脑Flutter环境部署坑汇总(持续更新)
1.本地安装,安装fvm的坑
我的电脑上运行的是 Windows 系统。如果要安装 FVM 工具,则通常会通过 Chocolatey 安装包来完成。为了安装 Chocolatey 安装包,请先执行以下操作:打开 PowerShell 或者直接启动 CMD 环境后,输入 cmd /k "dotnet install chocolatey" 并按回车键即可完成安装。
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072;
iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
choco安装成功后 通过choco install fvm可安装fvm
fvm安装成功后,通过命令行中使用fvm命令对flutter 版本进行控制
在安装完fvm之后需对Flutter进行相应的管理。可通过运行以下命令来指定全局使用的Flutter版本:$ Flutter global xxxx。执行上述命令后,在fvm/versions文件夹下自动生成了一个default目录,默认情况下该目录可被用来配置系统使用的默认Flutter版本参数。从而使得在整个项目中可以方便地调用Flutter相关命令。如果未按照上述方法操作,则可能会出现类似'Flutter不是一个已知 commanded'这样的错误信息。
2.fvm管理flutter版本
进入指定项目目录后,请通过执行以下命令切换到Flutter开发环境:fvm use xxx;然而,在此过程中会遇到一个新问题(源自https://storage.flutter-io.cn/的镜像无法访问)。建议在设置PUB_HOSTED_URL和FLUTTER_STORAGE_BASE_URL这两个全局配置参数时,并补充将对应的IP地址更换为国内其他可用的镜像服务器地址;例如(以下是一些可选的替代服务器列表):
//清华镜像
FLUTTER_STORAGE_BASE_URL="https://mirrors.tuna.tsinghua.edu.cn/flutter"
PUB_HOSTED_URL="https://mirrors.tuna.tsinghua.edu.cn/dart-pub"
//上交镜像
PUB_HOSTED_URL=https://dart-pub.mirrors.sjtug.sjtu.edu.cn
FLUTTER_STORAGE_BASE_URL=https://mirrors.sjtug.sjtu.edu.cn
//CNNIC镜像
PUB_HOSTED_URL=http://mirrors.cnnic.cn/dart-pub
FLUTTER_STORAGE_BASE_URL=http://mirrors.cnnic.cn/flutter
//腾讯镜像
PUB_HOSTED_URL=https://mirrors.cloud.tencent.com/dart-pub
FLUTTER_STORAGE_BASE_URL=https://mirrors.cloud.tencent.com/flutter
这里还有一个待解决的问题。\n在VSCode环境中,默认安装的是Flutter 10.x系列。\n此时需要编辑settings.json文件。\n将Flutter SDK路径配置为以下形式:
{
"dart.flutterSdkPath": "G:\ fvm\ default"
}
**注意:个人使用VS Code作为开发工具来构建Flutter应用,并发现在其命令行交互方式上存在不足之处。在进行Flutter SDK版本更新时仍会遇到类似问题,在排查过程中需重点关注其他潜在因素。回想公司电脑安装经历即是如此:因Flutter SDK路径配置问题导致无法顺利切换SDK版本;而Android Studio通过更新SDK版本自动解决了这一问题。整体而言感觉VS Code的配置较为灵活导致
如果这时想使用vscode自带的F5启动项目,可能会碰到这样的问题:

实际上,在VSCode终端或者命令行界面中都可以直接执行Git操作,并非与Git本身无任何关联。真正的原因却在于系统环境中缺少C:\Windows\System32路径(这里确实令人困惑)。
解决方法则是环境变量的path加上这个路劲,然后重新f5启动成功
3.Gradle使用的坑
在使用Flutter开发Android应用时,在安装与配置Gradle的过程中同样充满挑战。其分发地址通常设置在(gradlereflectors!) gradle-wrapper.properties文件内,请参考以下示例设置。
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip
也可以指定本地文件,本地文件格式一般是这样
distributionUrl=file:///D:/gradle7.4/gradle-7.4-all.zip
一般这个指向的是本地.gradle文件下的gradle-xxx-all.zip包
在使用Gradle搭建Android项目的过程中, 网络连接的速度较慢. 如果有访问梯子的选项, 则建议使用它来安装所需的依赖包. 如果无法访问外部网络, 则需配置本地镜像仓库以获取必要的开发工具. 在Gradle版本目录中如:
G:\Gradle\repo\wrapper\dists\gradle-7.5-all\6qsw290k5lz422uaf8jf6m7co\gradle-7.5\init.d
创建init.gradle文件,文件中可以配置gradle的镜像
allprojects {
repositories {
mavenLocal()
maven { name "Alibaba" ; url "https://maven.aliyun.com/repository/public" }
maven { name "Bstek" ; url "https://nexus.bsdn.org/content/groups/public/" }
mavenCentral()
}
buildscript {
repositories {
maven { name "Alibaba" ; url 'https://maven.aliyun.com/repository/public' }
maven { name "Bstek" ; url 'https://nexus.bsdn.org/content/groups/public/' }
maven { name "M2" ; url 'https://plugins.gradle.org/m2/' }
}
}
}
注意
注意
maven {
allowInsecureProtocol = true
url 'http://xxx.xxx.xxx/repository/public/'
}
另外还有个坑 这个在app第一次运行时基本都会碰到,即:

可以参考下这篇文章的思路来处理这个,找清楚原因,然后再去解决
Flutter always runs the Gradle task named 'assembleDebug'…
4.flutter 依赖版本问题 (巨坑)
编译时报错得手动修改依赖的版本号,
对于被其他需求所依存的依赖关系而言,在查找相关的yaml配置文件时可能会遇到缺失的情况(这种情况只能暂时放弃)。而我在本地运行时使用的配置文件就是这个(主要原因是项目从Python 3.7.1升级至3.7.8)。
该工程位于系统根目录下的用户文件夹内;其中包含应用数据文件夹;这些数据通常存储于本地AppData目录下;特别地;该工程还托管在开发服务器pub.dev上;具体的项目版本为社区图表Flutter版1.0.2;其对应的库文件位于项目根目录下的lib子目录中的src代码库中;具体而言;该工程涉及的行为集主要集中在图示说明模块中;用于展示与Legend相关的功能内容。

图片中的这些区域未对空安全进行处理,导致编译无法通过。无奈之下不得不手动修改代码以使编译通过。之后仍然出现异常情况。

这种异常是因为kotlin_version版本较低导致,原来为1.6.x更新到1.7.x即可
5.模拟器的坑
通常来说,默认情况下模拟器会基于x86_64架构进行设置。因此,在构建.gradle文件中进行相关设置较为合理。当遇到类似情况时(尤其是未预先安装Flutter项目时),往往会发现libflutter.so文件缺失。
debug {
ndk {
abiFilters "x86_64"
}
}
}
真机调试或者其他设备调试可以根据下图架构进行选择

