清晰易懂的 Flutter 开发环境搭建教程
Flutter 是 Google 推出的跨平台应用开发框架,支持 iOS/Android/Web/桌面应用开发。本教程将手把手教你完成 Windows/macOS/Linux 环境下的 Flutter 安装与配置,从零到运行第一个应用,全程避坑指南!
一、安装 Flutter SDK
1. 下载 Flutter SDK
- 访问官网下载页面:https://flutter.dev/docs/get-started/install
- 根据系统选择安装包:
- Windows:
flutter_windows_3.xx.x-stable.zip - macOS:
flutter_macos_3.xx.x-stable.zip - Linux:
flutter_linux_3.xx.x-stable.tar.xz
- Windows:
2. 解压并配置环境变量
- 将压缩包解压到目标目录(建议路径无空格和中文):
- Windows:
C:\src\flutter - macOS/Linux:
~/development/flutter
- Windows:
- 配置环境变量:
- Windows:
- 右键“此电脑” → 属性 → 高级系统设置 → 环境变量 → 编辑
Path→ 添加C:\src\flutter\bin
- 右键“此电脑” → 属性 → 高级系统设置 → 环境变量 → 编辑
- macOS/Linux:
echo 'export PATH="$PATH:$HOME/development/flutter/bin"' >> ~/.bashrc # 或 ~/.zshrc source ~/.bashrc
- Windows:
3. 验证安装
flutter --version
# 输出示例:Flutter 3.13.9 • channel stable • ...
二、安装平台依赖
1. Windows 用户
- 安装 Android Studio:
- 勾选 Android SDK、Android Emulator、Android SDK Platform-Tools
- 安装 Visual Studio:
- 勾选 “使用 C++ 的桌面开发”(用于 Windows 桌面应用编译)
2. macOS 用户
- 安装 Xcode:
xcode-select --install # 安装命令行工具 sudo xcodebuild -license # 接受 Xcode 许可协议 - 安装 CocoaPods(iOS 依赖管理):
sudo gem install cocoapods
3. Linux 用户
sudo apt-get install clang cmake ninja-build libgtk-3-dev
三、配置 Android 开发环境
1. 安装 Android Studio
- 下载并安装 Android Studio
- 打开 Android Studio → 安装 Flutter 和 Dart 插件:
- File → Settings → Plugins → 搜索安装
2. 配置 Android SDK
- 打开 Android Studio → Tools → SDK Manager
- 确保安装以下组件:
- Android SDK 33+
- Android SDK Platform-Tools
- Android Emulator
3. 接受 Android 许可证
flutter doctor --android-licenses # 按提示输入 y 确认
四、运行第一个 Flutter 应用
1. 创建项目
flutter create my_first_app
cd my_first_app
2. 启动模拟器
flutter emulators --launch Pixel_5_API_33 # 或连接真实设备
3. 运行应用
flutter run
# 看到手机屏幕显示 "Hello World" 即成功!
五、国内用户加速配置
1. 配置镜像环境变量
# Windows:在系统环境变量中添加
# macOS/Linux:添加到 ~/.bashrc 或 ~/.zshrc
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
2. 切换 Flutter 国内镜像源
flutter channel stable
flutter config --enable-web
flutter config --android-sdk /path/to/android/sdk # 指定 Android SDK 路径
六、新手必看:容易忽略的坑点
1. 未安装平台工具链
- 现象:
flutter doctor提示Android toolchain或Xcode未配置 - 解决:根据提示安装对应组件(如 Android SDK Build-Tools)
2. 模拟器无法启动
- 现象:
flutter emulators列表为空 - 解决:通过 Android Studio → AVD Manager 创建虚拟设备
3. iOS 编译失败(macOS)
- 现象:
pod install报错 - 解决:
sudo arch -x86_64 gem install ffi # Apple Silicon 芯片需额外步骤 cd ios && pod install
4. 网络问题导致依赖下载失败
- 现象:
flutter pub get卡住 - 解决:
- 确认镜像环境变量已配置
- 使用代理工具(如 Clash)设置全局代理
七、开发工具推荐
| 工具 | 用途 |
|---|---|
| VS Code | 轻量级代码编辑器(安装 Flutter/Dart 插件) |
| Android Studio | 官方 IDE,集成模拟器和调试工具 |
| Xcode | iOS 应用编译与发布(仅 macOS) |
八、总结
通过本教程,你已经:
- 完成 Flutter SDK 安装与环境变量配置
- 配置 Android/iOS 开发环境
- 创建并运行首个 Flutter 应用
- 掌握国内加速配置方案
下一步建议:
- 学习 Dart 语言基础(官方文档)
- 尝试 Flutter Widget 库(Widget Catalog)
- 探索跨平台功能(如调用摄像头、访问网络)
遇到问题可查阅 Flutter 中文文档 或留言讨论! 🚀
相关文章:
清晰易懂的 Flutter 开发环境搭建教程
Flutter 是 Google 推出的跨平台应用开发框架,支持 iOS/Android/Web/桌面应用开发。本教程将手把手教你完成 Windows/macOS/Linux 环境下的 Flutter 安装与配置,从零到运行第一个应用,全程避坑指南! 一、安装 Flutter SDK 1. 下载…...
图形界面设计理念
一、图形界面的组成 1、窗口 窗口约束了图形界面的边界,提供最小化、最大化、关闭的按钮。 2、菜单栏 一般在界面的上方,提供很多功能选项。 3、工具栏 一般是排成一列,每个图标代表一个功能。 工具栏是为了快速的调用经常使用的功能。 4、导…...
MySQL-- 函数(单行函数): 日期和时间函数
目录 1,获取日期、时间 2,日期与时间戳的转换 3,获取月份、星期、星期数、天数等函数 4,日期的操作函数 5,时间和秒钟转换的函数 6,计算日期和时间的函数 7,日期的格式化与解析 1,获取日期、时间 CURDATE() ,CURRENT_DATE() 返回…...
DeepSeek真的超越了OpenAI吗?
DeepSeek 现在确实很有竞争力,但要说它完全超越了 OpenAI 还有点早,两者各有优势。 DeepSeek 的优势 性价比高:DeepSeek 的训练成本低,比如 DeepSeek-V3 的训练成本只有 558 万美元,而 OpenAI 的 GPT-4 训练成本得数亿…...
Node 22.11使用ts-node报错
最近开始学ts,发现使用ts-node直接运行ts代码的时候怎么都不成功,折腾了一番感觉是这个node版本太高还不支持, 于是我找了一个替代品tsx npm install tsx -g npx tsx your-file.ts -g代表全局安装,也可以开发环境安装࿰…...
LabVIEW中VISA Write 与 GPIB Write的差异
在使用 LabVIEW 与 GPIB 设备通讯时,VISA Write Function 和 GPIB Write Function 是两个常用的函数,它们既有区别又有联系。 一、概述 VISA(Virtual Instrument Software Architecture)是一种用于仪器编程的标准 I/O 软件库&…...
牛客练习题——素数(质数)
质数数量 改题目需要注意的是时间 如果进行多次判断就会超时,这时需要使用素数筛结合标志数组进行对所有数据范围内进行判断,而后再结合前缀和将结果存储到数组中,就可以在O(1)的时间复杂度求出素数个数。 #include<iostream>using nam…...
使用MQTTX软件连接阿里云
使用MQTTX软件连接阿里云 MQTTX软件阿里云配置MQTTX软件设置 MQTTX软件 阿里云配置 ESP8266连接阿里云这篇文章里有详细的创建过程,这里就不再重复了,需要的可以点击了解一下。 MQTTX软件设置 打开软件之后,首先点击添加进行创建。 在阿…...
qt实现功率谱和瀑布图
瀑布图 配置qcustomplot的例子网上有很多了,记录下通过qcustomplot实现的功率谱和瀑布图代码: void WaveDisplay::plotWaterfall(MCustomPlot* p_imag) {mCustomPlotLs p_imag;mCustomPlotLs->plotLayout()->clear(); // clear default axis rect…...
通过发音学英语单词:从音到形的学习方法
📌 通过发音学英语单词:从音到形的学习方法 英语是一种 表音语言(phonetic language),但不像拼音文字(如汉语拼音、西班牙语等)那么规则,而是 部分表音部分表意。这意味着我们可以通…...
WebUI问题总结
修改WebUI代码时遇到的一些问题以及解决办法 1. thttpd服务器环境的搭建 可参考《thttpd安装与启动流程》这一篇文章 其中遇到的问题有 thttpd版本问题:版本过旧会导致安装失败,尽量安装新版本thttpd的启动命令失败的话要加上sudo修改文件权限&#…...
23种设计模式-行为型模式-责任链
文章目录 简介问题解决代码核心改进点: 总结 简介 责任链是一种行为设计模式,允许你把请求沿着处理者链进行发送。收到请求后,每个处理者均可对请求进行处理,或将其传递给链上的下个处理者。 问题 假如你正在开发一个订单系统。…...
git commit Message 插件解释说明
- feat - 一项新功能 - fix - 一个错误修复 - docs - 仅文档更改 - style - 不影响代码含义的更改(空白、格式化、缺少分号等) - refactor - 既不修复错误也不添加功能的代码更改 - perf - 提高性能的代码更改 - build - 影响构建系统或外部依赖项…...
推荐系统(二十一):基于MaskNet的商品推荐CTR模型实现
MaskNet 是微博团队 2021 年提出的 CTR 预测模型,相关论文:《MaskNet: Introducing Feature-Wise Multiplication to CTR Ranking Models by Instance-Guided Mask》。MaskNet 通过掩码自注意力机制,在推荐系统中实现了高效且鲁棒的特征交互学习,特别适用于需处理长序列及噪…...
OpenCV 从入门到精通(day_04)
1. 绘制图像轮廓 1.1 什么是轮廓 轮廓是一系列相连的点组成的曲线,代表了物体的基本外形。相对于边缘,轮廓是连续的,边缘不一定连续,如下图所示。其实边缘主要是作为图像的特征使用,比如可以用边缘特征可以区分脸和手…...
多模态学习(八):2022 TPAMI——U2Fusion: A Unified Unsupervised Image Fusion Network
论文链接:https://ieeexplore.ieee.org/stamp/stamp.jsp?tp&arnumber9151265 目录 一.摘要 1.1 摘要翻译 1.2 摘要解析 二.Introduction 2.1 Introduciton翻译 2.2 Introduction 解析 三. related work 3.1 related work翻译 3.2 relate work解析 四…...
JavaEE-0403学习记录
通过前期准备后,项目已经能够成功运行: 1、在文件UserMapper.java中添加如下代码: List<User> selectUSerByIdDynamic(User user); 2、在文件UserMapper.xml中添加如下代码: <select id"selectUSerByIdDynamic&quo…...
图像处理:使用Numpy和OpenCV实现傅里叶和逆傅里叶变换
文章目录 1、什么是傅里叶变换及其基础理论 1.1 傅里叶变换 1.2 基础理论 2. Numpy 实现傅里叶和逆傅里叶变换 2.1 Numpy 实现傅里叶变换 2.2 实现逆傅里叶变换 2.3 高通滤波示例 3. OpenCV 实现傅里叶变换和逆傅里叶变换及低通滤波示例 3.1 OpenCV 实现傅里叶变换 3.2 实现逆傅…...
洛谷题单2-P5715 【深基3.例8】三位数排序-python-流程图重构
题目描述 给出三个整数 a , b , c ( 0 ≤ a , b , c ≤ 100 ) a,b,c(0\le a,b,c \le 100) a,b,c(0≤a,b,c≤100),要求把这三位整数从小到大排序。 输入格式 输入三个整数 a , b , c a,b,c a,b,c,以空格隔开。 输出格式 输出一行,三个整…...
RNN模型与NLP应用——(7/9)机器翻译与Seq2Seq模型
声明: 本文基于哔站博主【Shusenwang】的视频课程【RNN模型及NLP应用】,结合自身的理解所作,旨在帮助大家了解学习NLP自然语言处理基础知识。配合着视频课程学习效果更佳。 材料来源:【Shusenwang】的视频课程【RNN模型及NLP应用…...
使用YoloV5和Mediapipe实现——上课玩手机检测(附完整源码)
目录 效果展示 应用场景举例 1. 课堂或考试监控(看到这个学生党还会爱我吗) 2. 驾驶安全监控(防止开车玩手机) 3. 企业办公管理(防止工作时间玩手机) 4. 监狱、戒毒所、特殊场所安保 5. 家长监管&am…...
XT-912在热交换站的应用
热网监控需求 随着国民经济的不断进步和人民生活水平日益提高,社会对环境的要求越来越高。近年来国家大力提倡城镇集中供热,改变原来各单位、各片区自己供热、单独建立锅炉房给城市带来的污染,由城市外围的一个或者多个热源厂提供热源&#…...
语文常识推翻百年“R完备、封闭”论
语文常识推翻百年“R完备、封闭”论 黄小宁 李四光:迷信权威等于扼杀智慧。语文常识表明从西方传进来的数学存在重大错误:将无穷多各异数轴误为同一轴。 复平面z各点z的对应点zk的全体是zk平面。z面平移变换为zk(k是非1正实常数…...
解决backtrader框架下日志ValueError: I/O operation on closed file.报错(jupyternotebook)
解决办法: 禁用 IPython 内核的日志重定向 在 IPython 环境下,内核可能会对日志进行重定向,从而引发问题。你可以尝试在运行代码之前禁用 IPython 的日志重定向: import logging# 禁用IPython内核的日志重定向 logging.getLogg…...
基于Docker容器部署DeepSeek-R1-Distill-Qwen-7B
首先打开魔搭社区,然后搜索DeepSeek-R1-Distill-Qwen-7B,进入详情页 官方推荐使用vllm来启动,但是手动搭建vllm环境容易出各种问题,我们这里直接找一个vllm的Docker镜像 一、拉取镜像 docker pull vllm/vllm-openai 如果拉取不…...
UART双向通信实现(序列机)
前言 UART(通用异步收发传输器)是一种串行通信协议,用于在电子设备之间进行数据传输。RS232是UART协议的一种常见实现标准,广泛应用于计算机和外围设备之间的通信。它定义了串行数据的传输格式和电气特性,以确…...
CentOS 7 全流程部署Magic-PDF数据清洗工具(附GPU加速方案)
CentOS 7 全流程部署Magic-PDF数据清洗工具(附GPU加速方案) 一、环境准备与方案选型 1.1 硬件要求 配置项最低要求推荐配置CPU4核8核内存8GB16GB存储50GBSSD/NVMeGPU可选NVIDIA T4 1.2 系统环境检查 # 查看系统版本 cat /etc/redhat-release# 检查G…...
2.1 路径问题专题:LeetCode 62. 不同路径
动态规划解决LeetCode 62题:不同路径问题 1. 题目链接 LeetCode 62. 不同路径 2. 题目描述 一个机器人位于一个 m x n 网格的左上角(起点标记为“Start”)。机器人每次只能向右或向下移动一步。机器人试图达到网格的右下角(标…...
“*(单星号)”和“**(双星号)”在Python中的灵活运用
在Python中,*和**是两个重要的运算符,它们具有不同的用途。 一、*(单星号) 1、*(单星号)作为乘法运算符 2、*(单星号) 用于解包序列或可迭代对象 用于解包序列或可迭代对象&…...
LabVIEW多线程
在 LabVIEW 中,多线程编程是提升程序执行效率的关键手段,尤其是在需要并行处理数据采集、控制执行和用户界面交互的场景下。LabVIEW 本身是基于数据流(Dataflow)的编程语言,天然支持多线程,但要高效利用多线…...
