新装电脑Flutter环境部署坑汇总(持续更新)

embedded/2024/10/18 8:19:35/

1.本地安装,安装fvm的坑

本人电脑使用windows ,安装fvm则一般使用choco安装,那么首先需要安装choco,打开powershell/或者cmd运行以下命令:

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 global xxxx 指定全局的flutter版本,运行这个命令后,会自动在fvm/versions统计生成一个default目录,该目录可以用来配置默认的flutter版本,这样才能全局使用flutter 命令操作,否则会提示 flutter 不是一个命令之类的提示

2.fvm管理flutter版本 

进入对应项目目录中,运行fvm use xxx切换flutter版本 ,但这时遇到另一个坑(https://storage.flutter-io.cn/ 镜像无法使用的问题 ),该坑最好在配置PUB_HOSTED_URL和FLUTTER_STORAGE_BASE_URL两个配置时将对应地址改成国内其他镜像环境,如(下面的几种镜像任选其一即可 ):

//清华镜像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

这里面还有个坑问题,多版本管理使用fvm global xxx生成默认的default目录之后,在vscode命令行中会出现一个问题就是,cmd命令行和vscode命令行用的flutter版本不是同一个,这时候可以修改settings.json文件,将flutterSdkPath配置改成如下方式

{"dart.flutterSdkPath": "G:\\fvm\\default"
}

 注意:因为本人是使用的vscode编辑器开发的flutter,vscode的命令行可能没有android studio命令行那么强大,所以像SDK版本切换后仍然会有这样的问题,这种情况就得仔细分析其他的可能原因了,我在公司电脑安装时就是这种情况,因为fluttersdkPath的问题,但android studio中只要修改了SDK版本版本就能自动切过去,感觉还是vscode配置太灵活导致(哈哈哈)

如果这时想使用vscode自带的F5启动项目,可能会碰到这样的问题:

其实在vscode终端和命令行中都能访问到git命令,这个跟git完全没有关系,解决方法反而是环境变量里面中没有C:\Windows\System32;这个路径(这里完全懵逼) :

解决方法则是环境变量的path加上这个路劲,然后重新f5启动成功

3.Gradle使用的坑

对于flutter项目编译的android项目而言,gradle的安装和配置也是比较坑的地方,gradle分发地址配置一般在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/' }}}
}

注意:这里又有个坑的地方,gradle构建项目时都是使用https,如果里面有协议名为http的最好改成https的,或者使用如下配置:

maven { allowInsecureProtocol = trueurl 'http://xxx.xxx.xxx/repository/public/' }

另外还有个坑 这个在app第一次运行时基本都会碰到,即:

 可以参考下这篇文章的思路来处理这个,找清楚原因,然后再去解决 

Flutter run 一直 Running Gradle task ‘assembleDebug’…_running gradle task 'assembledebug'...-CSDN博客

4.flutter 依赖版本问题 (巨坑)

编译时报错得手动修改依赖的版本号,

对于依赖所依赖的依赖,可能会找不到依赖的yaml配置的位置(这种情况只能认栽了),我本地跑的时候是这个文件 (主要是因为之前项目是3.7.1升级到3.7.8)

C:\Users\Administrator\AppData\Local\Pub\Cache\hosted\pub.dev\community_charts_flutter-1.0.2\lib\src\behaviors\legend\legend_layout.dart

上图的这些地方未作空安全的处理,导致编译不过去,无奈手动修改代码才能继续编译,后面继续又报异常

这种异常是因为kotlin_version版本较低导致,原来为1.6.x更新到1.7.x即可

5.模拟器的坑

最后模拟器一般是基于x86_64的配置的,所以最好在android/app/build.gradle中配置,需要这样配置的一般情况都是libflutter.so文件无法找到(特别是之前没安装过flutter项目时特别容易出现)

debug {ndk {abiFilters "x86_64"}}}

真机调试或者其他设备调试可以根据下图架构进行选择


http://www.ppmy.cn/embedded/21254.html

相关文章

Hive判空函数 COALESCE 和 NVL 使用示例

Hive判空函数 COALESCE 和 NVL 使用示例 1. 在Hive中, COALESCE 和 NVL 函数都是用于处理NULL值的函数,以下是它们的用途总结: COALESCE: COALESCE 函数用于返回参数列表中第一个非NULL的数值或表达式。语法: COALESC…

浅识数据结构之时间复杂度

P. S.:以下代码均在VS2019环境下测试,不代表所有编译器均可通过。 P. S.:测试代码均未展示头文件stdio.h的声明,使用时请自行添加。 文章目录 前言一. 时间复杂度1.1 时间复杂度的概念1.2 时间复杂度如何计算1.3 时间复杂度如何表…

IntelliJ IDEA 如何启用 JDK 预览特性

IntelliJ IDEA 也可以启用 JDK 的预览特性。 针对项目,选择项目结构。 配置是在语言结构上。 单击语言结构上的 SDK 默认,往下拉,就可以看到针对新版本的选项。 同时还可以看到那些版本是支持新特性预览的,那些版本是不支持新特…

HotSpot JVM 中的应用程序/动态类数据共享

0.前言 本文的目的是详细讨论 HotSpot JVM 自 JDK 1.5 以来提供的一项功能,该功能可以减少启动时间,但如果在多个 JVM 之间共享相同的类数据共享 (CDS) 存档,则还可以减少内存占用。 1.类数据共享 (CDS) CDS 的想法是使用特定格式将预处理…

闲话 ASP.NET Core 数据校验(一):内置数据校验

前言 所谓输入的是垃圾,输出也必然是垃圾,有多少安全问题隐藏在请求的数据中,所以永远不能相信来自用户端的输入。 对请求数据的合法性进行校验,不仅有助于提升用户界面的友好性,而且有助于提高后台程序的安全性和稳…

【Hadoop】- MapReduce YARN 初体验[9]

目录 提交MapReduce程序至YARN运行 1、提交wordcount示例程序 1.1、先准备words.txt文件上传到hdfs,文件内容如下: 1.2、在hdfs中创建两个文件夹,分别为/input、/output 1.3、将创建好的words.txt文件上传到hdfs中/input 1.4、提交MapR…

VMware-Linux切换桥接模式上网教程(超详细)

这里写目录标题 1. 虚拟机关机2. VMware 虚拟网络配置2.1 检查是否存在 VMnet02.2 修改桥接模式2.3 修改Linux虚拟机网络适配器 3. Linux 系统配置3.1 修改系统网卡配置3.1.1 配置项含义解释3.1.2 查看物理机网络信息3.3.3 修改配置 3.2 重启服务 4. 测试网络连接情况5. 注意事…

mamba 和conda 安装R包

**1. 下载miniconda3 ** wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh这个命令是在linux终端中输入的,miniconda3管理起来更方便。 2. 安装miniconda3 sh Miniconda3-latest-Linux-x86_64.sh接下来会有一些回车(ente…