第2天:创建 flutter 项目
摘要:本文详细介绍了Flutter项目的创建与运行流程。主要内容包括:1)通过Android Studio创建Flutter项目,配置SDK路径和平台选项;2)设置虚拟设备,优化Gradle下载源和Maven仓库;3)解决常见问题如Flutter版本过高、平台与构建工具版本不一致等;4)分析项目目录结构,说明各文件/文件夹作用。文章提供了完整的开发环境配置指南和问题解决方案,帮助开发者快速搭建Fl
文章目录
今日目标
- 创建一个 flutter 项目
- 在 Android studio 的虚拟设备上运行
一、创建 flutter 项目
1.1 创建 flutter 项目
1.2 选择 flutter ,并设置 flutter sdk,这里的路径为 flutter 文件的路径,不是 bin 的路径,这里要留意。
1.3设置项目名称,平台根据自己的需求进行设置,本次主要开发安卓的 app,这里仅勾选 Android 即可,其他勾选不勾选均可。
1.4 开启虚拟设备
1.5 Android studio 设置
- 更换 gradle 的下载源,将
\android\gradle\wrapper\gradle-wrapper.properties文件中的distributionUrl值变更为:https\://mirrors.cloud.tencent.com/gradle/gradle-8.14-all.zip
- 设置 maven 仓库。将
envhelper\android\settings.gradle.kts文件中的 repositories 中添加下面的镜像源。
maven { url = uri("https://maven.aliyun.com/repository/google") }
maven { url = uri("https://maven.aliyun.com/repository/releases") }
maven { url = uri("https://maven.aliyun.com/repository/central") }
maven { url = uri("https://maven.aliyun.com/repository/public") }
maven { url = uri("https://maven.aliyun.com/repository/gradle-plugin") }
maven { url = uri("https://maven.aliyun.com/repository/apache-snapshots") }
maven { url = uri("https://maven.aliyun.com/nexus/content/groups/public/") }
maven { url = uri("https://jitpack.io") }

- 设置网络权限。在
envhelper\android\app\src\main\AndroidManifest.xml中的添加
<uses-permission android:name="android.permission.INTERNET" />

1.6 在模拟设备上运行
首先选择 模拟设备(Pixel 9 Pro XL),然后点击运行即可。
出现这种情况说明正常运行。
二、避坑指南
如果按照第一天的环境配置,会出现许多因版本不匹配造成的各种报错。个人修改了很多,但是哪些是根本原因不太清楚。个人感觉最重要的就是 flutter 版本过高的问题,可以先降低版本后进行测试,其他的问题在这里罗列出来,供大家避坑。
1.flutter 版本过高的问题。
之前,我们下载的是 flutter 3.41.2 版本,但是这个版本太新了,导致无法从阿里云镜像源找到特定版本的 Flutter 嵌入库(flutter_embedding_debug 和 x86_64_debug),从而使checkDebugAarMetadata 任务执行失败,最终 Gradle 构建报错。
解决方法: 降低 flutter 的版本,后续将 flutter 的版本降为 flutter 3.38.10。然后将 FLUTTER_STORAGE_BASE_URL 变量的值 改为 https://storage.flutter-io.cn。
2. Platform android 和 build-tools 版本不一致的问题
通过命令 flutter doctor -v 检测环境时,发现Platform android-36, build-tools 35.0.0,这两个版本不一致,询问豆包,可能会存在编译的问题。因此,将 build-tools 的版本改为 36.0.0。
解决方法:file-->settings在 sdk tool中勾选 36.0.0 然后点击 OK。
三、文件目录结构

这是一个典型的 Flutter 项目 目录结构,我帮你逐一分析每个文件夹和文件的作用:
1. 根目录下的核心文件
.dart_tool/:Dart 工具缓存目录,包含依赖包缓存、构建缓存等,由 Dart/Flutter 自动管理,一般不需要手动修改。.idea/:Android Studio/IntelliJ IDEA 的项目配置目录,保存编辑器的设置、运行配置等。android/:Android 平台的原生代码和配置目录,包含 Android 项目的 Gradle 构建脚本、AndroidManifest.xml 等。build/:构建输出目录,存放编译后的产物(如 APK、Web 构建文件等),可以通过flutter clean清空。lib/:Flutter 应用的核心代码目录,所有 Dart 业务逻辑和 UI 代码都在这里。main.dart:Flutter 应用的入口文件,main()函数是程序启动的起点。
test/:单元测试和 Widget 测试代码目录,用于编写和运行测试用例。web/:Web 平台的相关配置和资源目录,包含 HTML、CSS 等文件,用于构建 Web 应用。.gitignore:Git 忽略文件配置,指定哪些文件/目录不被纳入版本控制。.metadata:Flutter 项目元数据文件,记录项目的 SDK 版本等信息,由 Flutter 自动维护。analysis_options.yaml:Dart 代码分析配置文件,用于定义代码风格、 lint 规则等。envhelper.iml:IntelliJ IDEA 的模块文件,由 IDE 自动生成。pubspec.lock:依赖版本锁定文件,记录当前项目所有依赖包的确切版本,确保团队协作时依赖一致。pubspec.yaml:Flutter 项目的核心配置文件,定义项目名称、版本、依赖包、资源文件等。README.md:项目说明文档,用于介绍项目功能、使用方法等。
2. 结构特点总结
- 多平台支持:同时包含
android/和web/目录,说明这个项目是为 Android 和 Web 两个平台开发的。 - 代码集中:所有业务代码都在
lib/目录下,入口文件是main.dart,符合 Flutter 项目的标准结构。 - 工具化管理:
.dart_tool/、build/等目录由工具自动生成和管理,开发者主要关注lib/、pubspec.yaml等核心文件。
更多推荐



所有评论(0)