【2025最新】Flutter 编译开发 鸿蒙HarmonyOS 6 项目教程(Windows)

一、基础环境搭建

1.1 Git 下载与安装

下载地址:

Git - Installhttps://git-scm.com/install/下载安装文章:

【2025最新】下载安装 Git 详细教程 (Windows)-CSDN博客

1.2 Java JDK17 下载与安装

下载地址:

Java Downloads | Oraclehttps://www.oracle.com/java/technologies/downloads/#java17-windows下载安装文章:

Java开发环境的搭建(Java 17)_java17-CSDN博客

二、Flutter SDK 下载安装和开发环境搭建

2.1 DevEco Studio下载安装

我这里版本为:

DevEco Studio 6.0.0 Release

Build Version: 6.0.0.858, built on September 24, 2025

Runtime version: 21.0.6+8-b631.39 amd64 (JCEF 122.1.9)

VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.

Toolkit: sun.awt.windows.WToolkit

Windows 11.0

GC: G1 Young Generation, G1 Concurrent GC, G1 Old Generation

Memory: 1536M

Cores: 16

Registry:

idea.plugins.compatible.build=IC-243.24978.46

本次安装需要以下几个文件夹,可以提前创建:在任意盘下创建HarmonyOS文件夹:

画红圈的是需要创建的:

ArkUI-X 文件夹下还有一个 Sdk 文件夹

Emulator 文件夹下还有一个 deployed 文件夹

OpenHarmony 文件夹下还有一个 Sdk 文件夹

1.下载官网压缩包

下载地址:

最新版本 - 下载中心 - 华为开发者联盟https://developer.huawei.com/consumer/cn/download/选择 6.0 稳定版如图所示:

2.下载完成后解压缩包双击打开.exe进入安装页面

3.选择安装位置

尽量不要选择C盘,如果C盘空间充足也可以

4.选择安装选项

全选点击进入下一步

5.选择开始菜单目录

默认即可,点击安装

6.开始安装

2.2 DevEco Studio 相关配置

1.新建一个项目

双击桌面图标进入应用

给你的项目起名,并选择你要保存Harmony项目的文件夹,点击Finish:

2. 配置显示字体

选择左上角 File 下的 Settings

3.设置安装OpenHarmony SDK

在Settings页面下的OpenHarmony SDK

选择安装路径:

点击同意,接着Next

等待下载,耐心等待

下载完成如图所示:

4.设置安装ArkUI-x

选择安装路径:

点击同意,接着Next

等待下载,耐心等待

下载完成如图所示:

点击蓝按钮OK关闭。

5.配置安装虚拟机模拟器

点击Device Manager

这里选择NO

配置安装位置:

选择完安装地址,出现弹窗点击Yes即可

接着选择右下角 New Emulator 新建虚拟机:

选择虚拟机镜像下载位置:

点击同意,接着Next

等待下载,耐心等待

接着Next:

运行即可,初次运行可能会有点慢,耐心等待即可:

6.运行项目

模拟器启动成功后,点击右上角运行按钮,即可在模拟器看见相关页面

2.3 配置鸿蒙SDK环境变量

默认在Terminal中,默认不识别hdc命令,需要将hdc所在的路径添加到环境变量(根据自己的deveco studio安装的路径自行调整)

F:\Chengxusheji\HarmonyOS\DevEco Studio\sdk\default\openharmony\toolchains

F:\Chengxusheji\HarmonyOS\DevEco Studio\tools\ohpm\bin

F:\Chengxusheji\HarmonyOS\DevEco Studio\tools\node

F:\Chengxusheji\HarmonyOS\DevEco Studio\tools\hvigor\bin

右键点击此电脑,点击属性,再点击高级系统设置,最后点击环境变量

点击右上角新建添加四个地址位置:

点击确定

另外,还需要新建DEVECO_SDK_HOME变量,路径为

F:\Chengxusheji\HarmonyOS\DevEco Studio\sdk

盘号:\你的位置\HarmonyOS\DevEco Studio\sdk

2.4 下载适配鸿蒙的flutter SDK

1.开始下载

利用前面下载安装好的 Git :

创建专门放Flutter的文件夹

会打开控制面板:

输入指令:

复制代码
git clone -b oh-3.27.4-dev https://gitcode.com/openharmony-tpc/flutter_flutter.git

下载安装成功:

2.配置环境变量

2.1. 拷贝windows的flutter目录下的bin完整路径

复制代码
F:\Chengxusheji\Flutter\flutter_flutter\bin

2.2. 右键点击此电脑,点击属性,再点击高级系统设置,最后点击环境变量

2.3. 在path路径中添加之前拷贝的bin路径

添加两个环境变量PUB_HOSTED_URLFLUTTER_STORAGE_BASE_URL

复制代码
PUB_HOSTED_URL

https://pub.flutter-io.cn

FLUTTER_STORAGE_BASE_URL

https://storage.flutter-io.cn

配置完成后,一直点击确定:

3.检查Flutter版本

复制代码
flutter --version

4.诊断flutter环境

复制代码
flutter doctor -v

三、创建并编译项目

3.1 创建项目

执行以下命令创建一个项目,<projectName>替换成你自己的项目名

复制代码
flutter create --platforms ohos <projectName>

专门创建一个文件夹保存Flutter鸿蒙项目:

在上面框中输入cmd,接着点击Enter

复制代码
flutter create --platforms ohos flutter_harmonyos

当前Flutter ohos平台中支持impeller-vulkan渲染模式,可通过开关控制是否打开。

开关位于ohos/entry/src/main/resources/rawfile/buildinfo.json5(初次flutter create之后,配置文件位于ohos\entry\src\main\resources\base\profile目录,首次run或build之后会搬移到rawfile目录)

复制代码
{
   "string": [
      {
         "name": "enable_impeller",
         "value": "true"
      }
   ]
}

如果选择关闭impeller渲染,可将json文件中的value改为false。

3.2 构建app

在创建的项目路径下,用powershell执行以下命令构建

复制代码
flutter build app --release

下述输入powershell接着点击 Enter

构建完毕后,会显示以下信息,我们就可以在ohos\build\outputs\default目录下找到未签名的hap包

3.3 打开项目

信任此项目:

打开项目后,开发环境会自动编译依赖,如果报错,请查看之前的步骤是否都完成了

第一次打开,会提示让添加目标sdk版本,选择1:

然后打开build-profile.json5添加自己想要编译到的设备的sdk版本

第一种连接鸿蒙设备

打开终端,执行hdc tconn IP:端口号(IP和端口号,在需要调试的设备上,打开开发者模式,在无线调试页面查看)

没有鸿蒙设备打开模拟器再配置自动签名

3.4 配置自动签名

选择项目结构(Project Structure)

点击Sign In登录配置签名

在网页中点击允许之后会自动刷新配置:

如果出现以下报错,就是你的电脑时间需要校准了

校准完之后,即可签名成功

3.4 编译与启动项目

启动虚拟模拟器,并点击右上角绿色按钮运行如下:

3.5 修改目标设备

默认项目是为手机构建的,假如需要支持电脑和平板端,需要修改一下配置

四、打开已有项目(已有开源项目需要打开时查看此步骤)

以kelivo-ohos这个项目为例。这个项目是一个大模型应用软件适配的鸿蒙版本

GitHub地址:https://github.com/Chevey339/kelivo-ohos

4.1 源码准备

下载好源码之后,我们解压并进入到源码目录,并打开poweshell

4.2 开始编译

执行以下命令进行编译

复制代码
flutter build app --release

出现以下问题代表我们的flutter sdk版本太低了

4.3 升级flutter sdk(可选)

我们访问仓库,看一下最新的发行版版本:

flutter_flutter - GitCodehttps://gitcode.com/openharmony-tpc/flutter_flutter

是3.27版本,我们也看一下分支,然后把原先的flutter_flutter文件夹删了,执行以下命令

复制代码
git clone -b oh-3.27.4-dev https://gitcode.com/openharmony-tpc/flutter_flutter.git

最后打开powershell,执行以下指令检查环境

复制代码
$env:PUB_HOSTED_URL="https://pub.flutter-io.cn" 
$env:FLUTTER_STORAGE_BASE_URL="https://storage.flutter-io.cn" 

flutter doctor -v

显示绿色代表环境正常

升级完成后再次编译

复制代码
flutter build app --release

然后报了找不到image_picker,我们需要从官方适配的库里找一找这个库

4.4 下载flutter_packages库(可选)

从这个网址下载官方适配的库:flutter_packages - GitCodehttps://gitcode.com/openharmony-tpc/flutter_packages下载完后进行解压,将packages文件夹,移动到源码目录下,并命名为flutter_packages

为什么这个命名呢,是从pubspec.yaml文件里看出来的:

然后又报了open_filex错误

经过查找,将这个仓库下载下来

https://gitcode.com/openharmony-sig/fluttertpc_open_filex/tree/br_v4.5.0_ohos

然后解压改名成fluttertpc_open_filex,放到flutter_packages文件夹里

然后还缺一些库,以下简述下载链接和改名,均放在flutter_packages文件夹里

4.5 固定依赖版本

打开源码里的pubspec.yaml,把win32和ffi的版本固定一下。

如果不固定,会默认下载5.13.0版本的win32,而这个版本的win32不再兼容Dart 3.6 会报错

编译完成如下图

4.6 补全build-profile.json5

将以下自动生成的默认build-profile.json5模板,放到源码的ohos中,找到 build-profile.json5(如果没有创建一个build-profile.json5文件),粘贴以下代码

TypeScript 复制代码
{
  "app": {
    "signingConfigs": [],
    "products": [
      {
        "name": "default",
        "signingConfig": "default",
        "compatibleSdkVersion": "5.0.0(12)",
        "runtimeOS": "HarmonyOS",
        "targetSdkVersion": "5.0.0(12)"
      }
    ],
    "buildModeSet": [
      {
        "name": "debug"
      },
      {
        "name": "profile"
      },
      {
        "name": "release"
      }
    ]
  },
  "modules": [
    {
      "name": "entry",
      "srcPath": "./entry",
      "targets": [
        {
          "name": "default",
          "applyToProducts": [
            "default"
          ]
        }
      ]
    }
  ]
}

添加粘贴权限

4.7 添加粘贴权限

默认移植的flutter程序,是没办法粘贴内容的,我们需要添加获取剪切板权限

首先在module.json5配置文件中添加剪切板权限

(注意:有两处"requestPermissions",要加到最下面那个"requestPermissions"里面)

TypeScript 复制代码
{
  "name" : "ohos.permission.READ_PASTEBOARD",
  "reason": "$string:module_desc",
  "usedScene": {
    "abilities": [
      "EntryAbility"
    ],
    "when":"inuse"
  }
}

最后别忘了重新签一下名,获取ACL权限

相关推荐
林瞅瞅9 小时前
PowerShell 启动卡顿?内存飙升?原来是 800MB 的历史记录在作祟!
windows
火柴就是我9 小时前
学习一些常用的混合模式之BlendMode. dst_atop
android·flutter
Shepherd06199 小时前
【Windows Server 实战】WAC 反向代理配置
windows
云小逸10 小时前
【windows系统编程】第一章 Windows 系统核心架构与基础概念
windows·架构
火柴就是我10 小时前
学习一些常用的混合模式之BlendMode. dstIn
android·flutter
奔跑的露西ly11 小时前
【HarmonyOS NEXT】进程与线程的理解
华为·harmonyos
怣疯knight11 小时前
Docker Desktop 4.55.0版本安装成功教程
windows·docker
火柴就是我12 小时前
学习一些常用的混合模式之BlendMode. dst
android·flutter
前端不太难12 小时前
Sliver 为什么能天然缩小 rebuild 影响面
flutter·性能优化·状态模式
liulilittle12 小时前
VEthernet 框架实现 tun2socks 的技术原理
网络·windows·c#·信息与通信·通信