Flutter 在 Windows 下的开发环境搭建(Flutter SDK 3.19.2)【图文详细教程】

news2024/11/28 8:28:38

Git 下载与安装

对于 Flutter 3.19,Git 版本需要 2.27 及以上

Git 下载:

  • Git 官网:https://git-scm.com/
  • Git 下载淘宝镜像:https://registry.npmmirror.com/binary.html?path=git-for-windows/

对于 Git 的安装教程,可以参考 https://blog.csdn.net/mukes/article/details/115693833,该文章中写的是真的详细

Flutter SDK 下载

在 https://flutter.cn/docs/get-started/install/windows/mobile?tab=download#install-the-flutter-sdk 中下载 Flutter SDK 稳定版本的压缩包
image.png

Flutter SDK 的安装

在电脑中选择合适的位置对下载的压缩包进行解压,把压缩包的 flutter 目录解压出来,解压完成即安装完成

我习惯对 SDK 的根目录添加 SDK 的版本,以便不同版本的区分

image.png

在系统环境变量中配置 Flutter 相关的环境变量

我的电脑=>鼠标右键=>属性=>高级系统设置=>环境变量=>系统变量=>Path=>新建

将 FLutter SDK 中 bin 目录添加到系统环境变量中,以便其中的可执行文件在任何位置都可以执行

  • flutter.bat:执行 flutter 相关命令
  • dart.bat:执行 dart 相关命令

image.png

检查 Flutter 所需的开发环境是否配置完整

在系统环境变量中配置完成 Flutter 相关的环境变量后,我们就可以在命令行终端中使用如下命令检查 Flutter 所需的环境是否完整

如果出现执行如下命令长时间未响应,可以参考 https://www.yuque.com/u27599042/rwe4wi/sncif8ep6ecws0sc 进行解决

flutter doctor

image.png

安装 Android Studio (解决 Android Studio (not installed) 与 Android toolchain - develop for Android devices Unable to locate Android SDK.)

[X] Android toolchain - develop for Android devices
    X Unable to locate Android SDK.
      Install Android Studio from: https://developer.android.com/studio/index.html
      On first launch it will assist you in installing the Android SDK components.
      (or visit https://flutter.dev/docs/get-started/install/windows#android-setup for detailed instructions).
      If the Android SDK has been installed to a custom location, please use
      `flutter config --android-sdk` to update to that location.


[!] Android Studio (not installed)

对于 Android Studio 的安装,可以参考 https://www.yuque.com/u27599042/hifn96/qeq6hga4rw86mf4y
在 Android Studio 安装完成之后,进入 Android Studio 的设置界面,选择 Languages&Frameworks,然后选择 Android SDK,在该设置项中可以下载其他版本的 Android SDK 和 SDK Tools,然后选择 SDK Tools,勾选 Android SDK Command-line Tools (latest)
image.png
然后点击 Apply,由于本地没有 Android SDK Command-line Tools (latest),需要下载,点击 OK
image.png
image.png
下载完成后点击 finish,然后点击 OK 确定设置修改并退出设置界面,运行 flutter doctor

如果你在安装 Android Studio 时,修改了 SDK 的存放位置,仍然会报错 Android toolchain - develop for Android devices Unable to locate Android SDK.,因为 Flutter 并不知道修改了 SDK 存放位置后 Android SDK Command-line Tools (latest) 在哪,可以参考 https://www.yuque.com/u27599042/rwe4wi/qxoh07f978md9kqr

image.png

同意 Android 许可协议

[!] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    ! Some Android licenses not accepted. To resolve this, run: flutter doctor --android-licenses

我们在安装 Android Studio,并下载 Android SDK Command-line Tools (latest) 后,还需要执行如下命令,同意 Android 许可协议

flutter doctor --android-licenses

然后一路输入 y 同意协议即可
image.png
image.png

安装谷歌浏览器 (解决 Cannot find Chrome)

[X] Chrome - develop for the web (Cannot find Chrome executable at .\Google\Chrome\Application\chrome.exe)
    ! Cannot find Chrome. Try setting CHROME_EXECUTABLE to a Chrome executable.

谷歌浏览器的下载地址:https://www.google.cn/chrome/index.html

谷歌浏览器的安装,这里不进行赘述

image.png
image.png

安装 Visual Studio (解决 Visual Studio not installed)

[X] Visual Studio - develop Windows apps
    X Visual Studio not installed; this is necessary to develop Windows apps.
      Download at https://visualstudio.microsoft.com/downloads/.
      Please install the "Desktop development with C++" workload, including all of its default components

Visual Studio 下载地址:https://visualstudio.microsoft.com/downloads/

社区版够用

image.png
image.png
下载安装完成之后,在工作负荷界面勾选使用 C++ 的桌面开发
image.png
然后在安装位置界面,根据需要选择是否修改 IDE、缓存、SDK 的存放路径
image.png
取消勾选安装后保留下载缓存,然后点击安装

这个过程会挺漫长

image.png
下载安装完成,点击确定
image.png
运行 flutter doctor
image.png

在系统环境变量中添加配置 storage 的国内镜像源(解决 A cryptographic error occurred while checking “https://storage.googleapis.com/”: Connection terminated during handshake)

[!] Network resources
    X A cryptographic error occurred while checking "https://storage.googleapis.com/": Connection terminated during handshake
      You may be experiencing a man-in-the-middle attack, your network may be compromised, or you may have malware installed on your computer.

在系统环境变量中添加 FLUTTER_STORAGE_BASE_URL 环境变量,配置 Flutter 需要访问 https://storage.googleapis.com/ 的国内镜像

FLUTTER_STORAGE_BASE_URL  设置为  https://storage.flutter-io.cn

image.png
关闭重开命令行窗口,运行 flutter doctor

这里 X Anetwork error occurredwhilechecking"https://maven.google.com/":信号灯超时时间已到 报错不见了,是由于 https://maven.google.com/ 这个时候可以访问到了,但是为了防止后面出现此报错,所以还是选择将 Flutter 访问的 maven 地址替换为国内镜像

image.png

配置 Flutter 使用的 maven 国内镜像(解决 X Anetwork error occurredwhilechecking"https://maven.google.com/":信号灯超时时间已到)

X Anetwork error occurredwhilechecking"https://maven.google.com/":信号灯超时时间已到

在 flutter3.19.2\packages\flutter_tools\lib\src 下的 http_host_validator.dart 文件中,找到 const String kMaven = 'https://maven.google.com/';,将 Flutter SDK 使用的 maven 镜像修改为国内镜像

const String kMaven = 'https://maven.aliyun.com/repository/google/';

image.png
运行 flutter doctor
image.png

此时 Flutter 的开发环境搭建完成,接下来创建并运行 Flutter 项目进行测试

创建 Flutter 项目

自行选择 Flutter 项目的存放位置,选择好项目的存放位置后,在命令行窗口中运行如下命令创建 Flutter 项目

Flutter 创建项目时使用的项目名之间不能使用 - 分割单词,要使用 _

flutter create <项目名>
flutter create first_flutter_project

image.png

运行 Flutter 项目

Flutter 项目创建完成后,进入项目根目录

cd <项目名>

然后打开 Android Studio 启动 Android 虚拟设备
image.png

没有 Android 虚拟设备的,点击左上角的加号创建一个即可,Android Studio 创建 Android 虚拟设备可以参考 https://www.yuque.com/u27599042/hifn96/ky9gfust1ikvb2kg

image.png
虚拟设备启动运行情况说明
image.png

第一次启动 Android 虚拟设备会比较慢

image.png
然后再 Flutter 项目根目录中运行如下命令,启动运行 Flutter 项目

如果一直卡在 Running Gradle task ‘assembleDebug’,解决方法可以参考 https://www.yuque.com/u27599042/rwe4wi/ozui5zabcpqucvz0,一直卡在 Running Gradle task ‘assembleDebug’,正在进行资源的下载,可能是由于 Gradle 构建项目时访问的 maven 镜像是国外的导致的
这里我由于一直卡在 Running Gradle task ‘assembleDebug’,就配置了 https://www.yuque.com/u27599042/rwe4wi/ozui5zabcpqucvz0 中的第五个配置操作,然后重新运行 flutter run 等一会就没有一直一直卡在 Running Gradle task ‘assembleDebug’
image.png
如果仍然不行,可以尝试把 https://www.yuque.com/u27599042/rwe4wi/ozui5zabcpqucvz0 中没有进行的配置操作配置一下试试看

flutter run

image.png

至此,成功,nice

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1530258.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Go 1.22 - 更加强大的 Go 执行跟踪

原文&#xff1a;Michael Knyszek - 2024.03.14 runtime/trace 包含了一款强大的工具&#xff0c;用于理解和排查 Go 程序。这个功能可以生成一段时间内每个 goroutine 的执行追踪。然后&#xff0c;你可以使用 go tool trace 命令&#xff08;或者优秀的开源工具 gotraceui&a…

Unable to load host key: /etc/ssh/ssh_host_rsa_key

Unable to load host key: /etc/ssh/ssh_host_rsa_key 启动docker镜像时报错 Unable to load host key: /etc/ssh/ssh_host_rsa_key Unable to load host key: /etc/ssh/ssh_host_ecdsa_key Unable to load host key: /etc/ssh/ssh_host_ed25519_key sshd: no hostkeys availa…

多特征变量序列预测(11) 基于Pytorch的TCN-GRU预测模型

往期精彩内容&#xff1a; 时序预测&#xff1a;LSTM、ARIMA、Holt-Winters、SARIMA模型的分析与比较-CSDN博客 风速预测&#xff08;一&#xff09;数据集介绍和预处理-CSDN博客 风速预测&#xff08;二&#xff09;基于Pytorch的EMD-LSTM模型-CSDN博客 风速预测&#xff…

什么是子网掩码、ip地址的网段?如何区分?

IP地址优化网写了很多相关的文章。 有些朋友对于子网掩码、IP地址网段等还不太了解&#xff0c;我们来看看网友经常问到的一些相关问题。 255.255.255.192 的位掩码是什么&#xff1f; 1.什么是子网掩码&#xff1f; 在了解IP地址的网段之前&#xff0c;我们先来了解一下子网…

【RabbitMQ | 第四篇】基于RabbitMQ实现延迟队列

文章目录 4.基于RabbitMQ实现延迟队列4.1延迟队列定义4.2基于DLX&#xff08;死信交换机&#xff09;实现延迟队列4.2.1实现思路4.2.2主要流程4.2.3实战&#xff08;1&#xff09;创建两个消息队列&#xff1a;原始消息队列、死信队列 and 为原始消息队列关联私信交换机&#x…

高精度AI火灾烟雾检测算法,助力打造更加安全的楼宇环境

一、方案背景 近日&#xff0c;南京居民楼火灾事故导致15人死亡的新闻闹得沸沸扬扬&#xff0c;这一事件又激起了大家对楼宇火灾隐患的进一步担忧。事后我们除了思考政府、消防及物业部门应对此事的解决办法&#xff0c;我们还应该思考如何利用现有的技术帮助人们减少此类事情的…

蓝桥杯模块综合——高质量讲解AT24C02,BS18B20,BS1302,AD/DA(PCF8591),超声波模块

AT24C02——就是一个存储的东西&#xff0c;可以给他写东西&#xff0c;掉电不丢失。 void EEPROM_Write(unsigned char * EEPROM_String,unsigned char addr , unsigned char num) {IIC_Start();IIC_SendByte(0xA0);IIC_WaitAck();IIC_SendByte(addr);IIC_WaitAck();while(nu…

非正向图片如何在OCR技术层面去解决?

在OCR&#xff08;Optical Character Recognition&#xff0c;光学字符识别&#xff09;技术中&#xff0c;非正向的图片一般是指倒过来或者没有固定版式的图片&#xff0c;要识别好这类图片确实是一个挑战。这类问题通常涉及到图像预处理、特征提取和识别算法等多个环节。以下…

SpringBoot项目前端Vue访问后端(图片静态资源) 配置

静态资源配置 Configuration public class WebMvcConfig extends WebMvcConfigurationSupport {Value("${file.save-path}")private String fileSavePath;Overrideprotected void addResourceHandlers(ResourceHandlerRegistry registry) {//映射本地文件夹registry…

python大学生健身爱好者交流网站flask-django-nodejs-php

任何系统都要遵循系统设计的基本流程&#xff0c;本系统也不例外&#xff0c;同样需要经过市场调研&#xff0c;需求分析&#xff0c;概要设计&#xff0c;详细设计&#xff0c;编码&#xff0c;测试这些步骤&#xff0c;基于python技术、django/flask框架、B/S机构、Mysql数据…

每日一练:LeeCode-167. 两数之和 II - 输入有序数组【双指针】

给你一个下标从 1 开始的整数数组 numbers &#xff0c;该数组已按 非递减顺序排列 &#xff0c;请你从数组中找出满足相加之和等于目标数 target 的两个数。如果设这两个数分别是 numbers[index1] 和 numbers[index2] &#xff0c;则 1 < index1 < index2 < numbers.…

WanAndroid(鸿蒙版)开发的第六篇

前言 DevEco Studio版本&#xff1a;4.0.0.600 WanAndroid的API链接&#xff1a;玩Android 开放API-玩Android - wanandroid.com 其他篇文章参考&#xff1a; 1、WanAndroid(鸿蒙版)开发的第一篇 2、WanAndroid(鸿蒙版)开发的第二篇 3、WanAndroid(鸿蒙版)开发的第三篇 …

自然语言处理学习总结

目录 1、词表示 2、语言模型&#xff08;LM&#xff09; 3、常用学习网址 自然语言处理 1、词表示 词表示&#xff1a;自然语言中最基本的语言单位表示成机器理解的方式 方式一&#xff1a;词与词之间的相似度 方式二&#xff1a;词与词之间的关系 词义的表示方法&…

Linux 服务升级:MySQL 主从(半同步复制) 平滑升级

目录 一、实验 1.环境 2.Mysql-shell 检查工具兼容性 3.逻辑备份MySQL数据 4.备份MySQL 数据目录、安装目录、配置文件 5.MySQL 升级 6.master节点 使用systemd管理mysql8 7. slave1 节点升级 8. slave2 节点升级 9.半同步设置 二、问题 1.mysqldump备份报错 2.Inn…

FPGA控制AD7606_AD7606解读

目录 一、AD7606解读二、引脚说明三、时序图 一、AD7606解读 AD7606特点&#xff1a; 8通道同步采样模拟通道数为8分辨率&#xff1a;16bit&#xff0c;即最小采样的电压为5V/(2^16) 0,00007V&#xff0c;即数字量的1就代表模拟量的0,00007V&#xff0c;2代表0,00014V有效位数…

Android14 - AMS之Activity启动过程(3)

Android14 - AMS之Activity启动过程&#xff08;1&#xff09;-CSDN博客 Android14 - AMS之Activity启动过程&#xff08;2&#xff09;-CSDN博客 上篇中我们梳理完ActivityStarter的startActivityInner&#xff0c;本篇从这里开始&#xff1a; platform/frameworks/base/servi…

Linux实践 - 命令行解释器 简易版

~~~~ 前言解决的问题为什么shell要以子进程的方式执行我们的命令&#xff1f;为什么直接使用程序名ls&#xff0c;而不是路径/usr/bin/ls&#xff1f; 头文件包含命令行提示符接受用户命令行输入解析用户的输入内建命令&&特殊处理ls 时目录等文件不带高亮颜色cd时目录不…

[OpenCV学习笔记]获取鼠标处图像的坐标和像素值

目录 1、介绍2、效果展示3、代码实现4、源码展示 1、介绍 实现获取鼠标点击处的图像的坐标和像素值&#xff0c;灰度图显示其灰度值&#xff0c;RGB图显示rgb的值。 OpenCV获取灰度值及彩色像素值的方法&#xff1a; //灰度图像&#xff1a; image.at<uchar>(j, i) //j…

学习笔记Day12:初探LInux 2

Linux初探 同一个目录中不允许出现文件及文件夹重名 查看文件 cat &#xff08;Concatenate&#xff09;查看文本文件内容&#xff0c;输出到屏幕&#xff08;标准输出流&#xff09; 常用参数 -A打印所有字符&#xff0c;包括特殊字符&#xff08;换行符、制表符等&#xff…

前端项目,个人笔记(三)【Vue-cli - api封装-axios使用举例】

目录 前言 1、axios配置与测试 1.1、配置 1.2、测试 2、使用axios案例-渲染header 3、Pinia优化重复请求 3.1、为什么&#xff1f; 3.2、使用Pinia优化代码步骤 步骤一&#xff1a;在main.js中创建 Pinia 实例&#xff0c;并将其作为插件添加到 Vue 应用中 步骤二&am…