今日目标

  • 创建一个 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 等核心文件。
Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐