Flutter for HarmonyOS 创建指南(一):环境搭建与项目创建

news/2025/12/7 22:32:50/文章来源:https://www.cnblogs.com/gccbuaa/p/19319050

本篇将详细介绍如何搭建 Flutter for HarmonyOS 的开发环境并创建第一个项目。以下是主要内容概览:

阶段关键任务核心要点
1. 环境准备安装基础工具与SDKJDK 17、特定版本Flutter SDK (3.22.x-ohos)、DevEco Studio 5.0+、Node.js (v14.19.1+)
2. 环境配置设置路径与变量配置Flutter、HarmonyOS SDK、ohpm、hvigor等环境变量
3. 项目创建初始化与平台支持使用 flutter create --platforms ohos创建项目,生成ohos目录
4. 项目运行构建与安装使用 flutter build hap编译HAP包,通过 flutter run -d harmony运行
一、环境准备:安装必要工具与SDK

在开始之前,需要准备以下基础软件,这是构建Flutter鸿蒙应用的基石 :

  • Java环境:确保已安装 JDK 17。可通过命令行 java -version验证 。

  • HarmonyOS开发工具:安装 DevEco Studio 5.0或更高版本,它集成了HarmonyOS SDK、ohpm(HarmonyOS包管理器)、hvigor(构建工具)和Node.js环境 。

  • Flutter SDK(鸿蒙特供版):这是关键一步。由于官方Flutter SDK尚未正式支持HarmonyOS,你需要使用由OpenHarmony-SIG社区维护的特定版本。目前推荐的稳定版本是 3.22.x-ohos系列

    • 获取方式:通过Git克隆指定仓库并切换到对应分支。

      git clone https://gitcode.com/openharmony-sig/flutter_flutter.git
      cd flutter_flutter
      git checkout 3.22.1-ohos-1.0.0  # 或最新的ohos分支
    • 版本管理建议:为了避免与你可能已安装的标准Flutter SDK产生冲突,强烈建议使用 **FVM (Flutter Version Management)**来管理多个Flutter版本 。你也可以考虑将鸿蒙版Flutter的可执行文件重命名(例如改为 hflutter)以方便区分 。

二、环境配置:设置系统变量

安装完成后,需要配置系统环境变量,以便在终端中能够顺利调用各种命令 。

  • Flutter SDK路径:将你克隆的Flutter SDK的bin目录路径添加到系统的PATH变量中。
  • HarmonyOS开发工具路径:将DevEco Studio安装目录下的相关工具路径添加到PATH中,通常包括: $TOOL_HOME/tools/ohpm/bin$TOOL_HOME/tools/hvigor/bin$TOOL_HOME/tools/node/bin (其中 TOOL_HOME是DevEco Studio的安装路径)。
  • HDC端口号:为方便调试,建议设置HDC_SERVER_PORT环境变量,值可设置为如7035等未被占用的端口 。

配置完成后,在终端执行 flutter doctor -v命令来验证环境是否配置成功。理想的输出结果应显示Flutter SDK版本为鸿蒙分支,并且HarmonyOS工具链各项前面有对勾(√)表示就绪 。

三、项目创建与结构解析

环境配置无误后,即可开始创建你的第一个Flutter鸿蒙项目。

四、项目运行与调试

项目创建完成后,可以尝试运行到设备上。

  • 构建HAP包:使用以下命令可以编译生成HarmonyOS的应用安装包(HAP) 。

    flutter build hap --release

    生成的HAP文件位于 ohos/entry/build目录下。

  • 运行到设备:将鸿蒙真机通过USB连接电脑并开启调试模式,或启动模拟器。然后使用以下命令运行应用 。

    flutter run -d harmony

    你可以通过 flutter devices命令查看当前已连接且可用的设备列表及其ID 。

  • 可能遇到的问题设备识别:如果Android Studio或DevEco Studio无法识别鸿蒙设备,确保已正确安装HDC驱动并设置了HDC_SERVER_PORT环境变量 。 签名问题:首次在真机上运行调试版应用可能需要配置调试签名。可以在DevEco Studio中打开ohos目录,在 File > Project Structure > Signing Configs中自动生成调试签名 。

完成以上步骤,你应该就能在鸿蒙设备或模拟器上看到默认的Flutter计数器应用在运行了,这标志着你的Flutter for HarmonyOS开发环境已经成功搭建!

本篇重点在于环境的准备和第一个项目的成功运行。在后续文章中,我们将深入探讨Flutter与HarmonyOS原生能力的交互、UI适配以及更复杂的应用场景。请注意,社区版本的Flutter for HarmonyOS仍在快速发展中,相关命令和配置可能随版本更新有所调整,建议随时关注OpenHarmony-SIG社区的官方文档和更新日志 。

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

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

相关文章

2025最新西双版纳地接社TOP5评测!品牌实力+服务口碑权威榜单发布,专业赋能品质旅行体验

随着西双版纳成为国内外游客热门的旅游目的地,选择一家靠谱的地接社成为提升旅行体验的关键。本榜单基于综合实力、资源优势、服务口碑、定制能力四大维度,结合行业数据及游客反馈,权威解析2025年五大西双版纳地接社…

详细介绍:[特殊字符] 微前端部署实战:Nginx 配置 HTTPS 与 CORS 跨域解决方案(示例版)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Git预提交钩子实现代码美化自动化

本文介绍如何使用Git的pre-commit钩子结合astyle工具,在提交代码前自动美化代码格式,尤其适用于需要遵循特定编码规范(如Linux内核风格)的开发场景,提高代码质量和一致性。大家好。 在这篇文章中,我将分享我创建…

五、Java数组

本文系统讲解Java数组的核心概念与应用,涵盖数组声明创建、内存分析、多维数组、Arrays工具类及稀疏数组实现,适合Java初学者夯实基础,并为后续学习集合框架奠定坚实基础。1. 数组概述数组是相同数据类型的有序集合…

122_尚硅谷_init函数

122_尚硅谷_init函数1.init基本介绍 2.如果一个文件同时包含全局变量, init函数和main函数, 那么执行的顺序是:全局变量定义_init函数_main函数 3.utils包中有init会在main中导入后,先执行utils.go文件中的init

《安全测试指南》——会话管理测试【学习笔记】

【会话管理测试】*部分括号内容均为个人理解 。 1. 会话管理架构绕过测试(OTG-SESS-001)主要测试会话cookie是否不可预测。攻击模式:cookie搜集(搜集足够数量的cookie样本)cookie逆向工程(分析Cookie生成算法) …

氛围编程工具个人推荐

氛围编程工具个人推荐大模型推理能力(脑子) > 编辑器功能(手)。它更推崇拥有强大逻辑架构能力的模型(如Claude),而不是单纯的IDE集成工具。第一梯队 (First Echelon):主力军这一层级是作者认为完成“Vibe C…

Windows 11全面AI化:语音助手与自主代理技术解析

某中心对Windows 11进行大规模改造,引入了“Hey Copilot”语音唤醒、可分析屏幕内容的Copilot Vision以及能自主操控电脑完成任务的Copilot Actions等AI功能。这些技术构建了全新的人机交互模式,并涉及新的安全架构以…

20251207

明天试试自己独立完成老师布置的作业

MyBatis自定义拦截器

在Spring Boot中配置MyBatis拦截器的核心是将自定义拦截器注册到MyBatis的SqlSessionFactory中(MyBatis所有拦截器都需通过该工厂注册才能生效)。以下是完整、分场景的配置方案,包含基础配置、多拦截器、属性定制、…

网线大鲨鱼

使用wireshark打开下载文件,搜索字符串ctf,选择分组字节流发现flag,/?s=moectf%7Bw1r3shark_1s_s0_3asy%7D&_pjax=%23page 解码获得最终flag:moectf{w1r3shark_1s_s0_3asy}

深入解析:mysql内置函数——了解常用的函数

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

【P1】win10安装 Docker教程 - 详解

【P1】win10安装 Docker教程 - 详解2025-12-07 22:11 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !imp…

csq-蓝桥杯python-基础语法1-逻辑运算与条件语句

csq-蓝桥杯python-基础语法1-逻辑运算与条件语句一、什么是逻辑运算?在 Python 中,比较运算(如 > < ==)的结果是布尔值 True 或 False。 实际开发中经常需要组合多个条件,例如:年龄大于 18 并且身高大于 1…

高级语言程序设计第八次个人作业

这个作业属于哪个课程:https://edu.cnblogs.com/campus/fzu/gjyycx 这个作业要求在哪里: https://edu.cnblogs.com/campus/fzu/gjyycx/homework/15590 学号:102400111 姓名:蔡伟仡 一.编写并运行书本第11章11.13编…

Cor1e的支票

打开下载文件,看见。!?三个符号,想到OoK加密将。改成OoK.,!改成OoK!,?改成OoK?在https://www.dcode.fr/ook-language 解密,获得flag

卷积神经网络是从多层感知机基础上发展起来的吗?

卷积神经网络是从多层感知机基础上发展起来的吗? 在深度学习的发展历程中,卷积神经网络(CNN)和多层感知机(MLP)是两大核心架构,二者时常被放在一起比较。一个常见的疑问是:卷积神经网络是否从多层感知机的基础…

gaussdb json解析

gaussdb (GaussDB Kernel 503.1.0.SPC1200 build c28d95e9) -- 序列 CREATE SEQUENCE seq_head_id START WITH 1; CREATE SEQUENCE seq_line_id START WITH 1;-- 头表 CREATE TABLE head_t (head_id BIGINT PRIMARY KE…

详细介绍:python logging模块:专业日志记录

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …