【开源鸿蒙跨平台开发先锋训练营】Window上Flutter开发环境搭建
对于操作系统的选择上,推荐这里稍微说明一下,为和我情况类似的同学避一下坑。我本身没有Mac的电脑,因此只能在Windows和Linux之间做出选择。又因为没有鸿蒙的真实设备,而能够提供鸿蒙模拟器的DevEco Studio又只支持Mac和Windows,所以到这里我只有Windows一个选择了。曾经尝试过Win7,结果发现最新的Git安装包已经不支持了,转而选择了Win10,结果有自动更新为了Wi
操作系统的选择
对于操作系统的选择上,推荐Win11 + 200 GB 以上硬盘剩余空间
这里稍微说明一下,为和我情况类似的同学避一下坑。我本身没有Mac的电脑,因此只能在Windows和Linux之间做出选择。又因为没有鸿蒙的真实设备,而能够提供鸿蒙模拟器的DevEco Studio又只支持Mac和Windows,所以到这里我只有Windows一个选择了。

曾经尝试过Win7,结果发现最新的Git安装包已经不支持了,转而选择了Win10,结果又自动更新为了Win11,所以如果同学你的情况和我类似,没有Mac又需要使用模拟器,直接上Win11吧。
对于操作系统的选择,另外说明一点,如果手边没有真机或者开发设备,避免选择虚拟Windows操作系统,因为鸿蒙的模拟器需要打开嵌套虚拟的功能,而且需要虚拟机GPU提供OpenGL的支持,这些都会导致模拟器在虚拟Windows操作系统上很难运行起来。慎重选择,别问我怎么知道的:(
关于对硬盘空间的要求,因为要安装许多软件,比如DevEco Studio, Android Studio, Visual Studio, Visual Studio Code, 以及通过这些Studio下载的SDK,模拟器等,Flutter包的缓存,Gradle的缓存等等,200GB以上的剩余空间才可以让后面的开发从从容容,游刃有余吧。参考下我目前的硬盘空间使用量(已经120GB了,不排除还有我不知道的软件或者缓存啥的存在C盘):

各软件下载及安装方法
以供方便:
- 【开发者必备工具】Windows 11 安装 Git 完整指南
- 生成-rsa-ssh-密钥 及 添加-ssh-公钥到-atomgit, 这样后面git push时可以避免重复输入密码或者token.
- 【鸿蒙开发者可选工具】Windows 11安装Java 17完整指南
- 【鸿蒙开发者必备工具】Windows 11 安装 DevEco Studio 完整指南
- 【鸿蒙开发者必备工具】鸿蒙command line tools: 下载链接
- 【鸿蒙开发者必备工具】鸿蒙版Fluttter SDK:下载及环境配置
- Flutter SDK既是flutter库本身,有些地方会提供一些zip包来供下载,其实际上也就是flutter库某个版本的压缩包。
- 【鸿蒙开发者跨平台开发可选工具】Windows 11 安装 Visual Studio Code 完整指南
- 【鸿蒙开发者跨平台开发可选工具】Windows 11 安装 Android Studio 完整指南
环境变量的设置
基于环境依赖 中提到的变量设置,基本上鸿蒙平台相关的flutter命令都已经能够运行了。如果是跨平台开发,特别是需要编译Android apk去验证跨平台的开发,最好设置GRADLE_USER_HOME为非系统盘路径,否则系统盘空间很快就会被吃掉。

下载鸿蒙Flutter SDK
1. 下载oh-3.35.7-dev分支SDK
PS D:\flutter\atomgit> git clone -b oh-3.35.7-dev git@gitcode.com:openharmony-tpc/flutter_flutter.git
Cloning into 'flutter_flutter'...
** WARNING: connection is not using a post-quantum key exchange algorithm.
** This session may be vulnerable to "store now, decrypt later" attacks.
** The server may need to be upgraded. See https://openssh.com/pq.html
remote: Enumerating objects: 1035485, done.
remote: Counting objects: 100% (22756/22756), done.
remote: Compressing objects: 100% (1030/1030), done.
remote: Total 1035485 (delta 22290), reused 21727 (delta 21726), pack-reused 1012729 (from 1)
Receiving objects: 100% (1035485/1035485), 1.81 GiB | 9.92 MiB/s, done.
Resolving deltas: 100% (735617/735617), done.
Updating files: 100% (15567/15567), done.
PS D:\flutter\atomgit>
2. 检查分支及环境设置
PS D:\flutter\atomgit\flutter_flutter> git branch
* oh-3.35.7-dev
PS D:\flutter\atomgit\flutter_flutter> git log --oneline -n5
5911a8fda4 (HEAD -> oh-3.35.7-dev, origin/oh-3.35.7-dev) !849 merge oh-3.35.7-dev into oh-3.35.7-dev
580809f962 Branch oh-3.35.7-dev update engine.ohos.har.version to 8cf3943641ca1c36d8a225d521eedeece8aa60b6
8cf3943641 !839 merge dpi_35_7 into oh-3.35.7-dev
f1c523d92e feat: notify OHOS when navigate in Flutter
3e67861099 !829 merge oh-3.35.7-dev into oh-3.35.7-dev
PS D:\flutter\atomgit\flutter_flutter>
可以确认这里列出的第一个commit id 5911a8fda4 与 atomgit 上一致

用flutter doctor -v来检查环境配置, 需要flutter和HarmoneyOS项全部pass
PS D:\flutter\atomgit\flutter_flutter> .\bin\flutter doctor -v
Flutter assets will be downloaded from https://storage.flutter-io.cn. Make sure you trust this source!
[!] Flutter (Channel [user-branch], 3.35.8-ohos-0.0.1-canary1, on Microsoft Windows [版本 10.0.26200.7623], locale zh-CN) [352ms]
! Flutter version 3.35.8-ohos-0.0.1-canary1 on channel [user-branch] at D:\flutter\atomgit\flutter_flutter
Currently on an unknown channel. Run `flutter channel` to switch to an official channel.
If that doesn't fix the issue, reinstall Flutter by following instructions at https://flutter.dev/setup.
! Warning: `flutter` on your path resolves to D:\flutter\sdks\flutter_flutter\bin\flutter, which is not inside your current Flutter SDK checkout at
D:\flutter\atomgit\flutter_flutter. Consider adding D:\flutter\atomgit\flutter_flutter\bin to the front of your path.
! Warning: `dart` on your path resolves to D:\flutter\sdks\flutter_flutter\bin\dart, which is not inside your current Flutter SDK checkout at
D:\flutter\atomgit\flutter_flutter. Consider adding D:\flutter\atomgit\flutter_flutter\bin to the front of your path.
! Upstream repository git@gitcode.com:openharmony-tpc/flutter_flutter.git is not a standard remote.
Set environment variable "FLUTTER_GIT_URL" to git@gitcode.com:openharmony-tpc/flutter_flutter.git to dismiss this error.
• Framework revision 5911a8fda4 (3 days ago), 2026-01-16 10:29:48 +0800
• Engine revision 035316565a
• Dart version 3.9.2
• DevTools version 2.48.0
• Flutter download mirror https://storage.flutter-io.cn
• Feature flags: enable-ohos, enable-web, enable-linux-desktop, enable-macos-desktop, enable-windows-desktop, enable-android, enable-ios,
cli-animations, enable-native-assets, enable-lldb-debugging
• If those were intentional, you can disregard the above warnings; however it is recommended to use "git" directly to perform update checks and
upgrades.
[√] HarmonyOS toolchain - develop for HarmonyOS devices
• OpenHarmony Sdk at D:\flutter\programs\command-line-tools\sdk, available api versions has [21:default]
• Ohpm version 6.0.1
• Node version v18.20.1
• Hvigorw binary at D:\flutter\programs\command-line-tools\hvigor\bin\hvigorw
这里使用的是 ./bin/flutter, 如果将bin目录加入到系统环境变量path中, 则直接运行flutter即可。
如果有失败项,请根据提示完成相应操作后再运行flutter doctor -v来检查。
编译/运行鸿蒙APP
1. 创建应用并编译
PS D:\flutter\atomgit> flutter create openharmony_flutter
Flutter assets will be downloaded from https://storage.flutter-io.cn. Make sure you trust this source!
...
PS D:\flutter\atomgit> cd .\openharmony_flutter\
PS D:\flutter\atomgit\openharmony_flutter> flutter build hap
Flutter assets will be downloaded from https://storage.flutter-io.cn. Make sure you trust this source!
start hap build...
Running Hvigor task assembleHap... 29.9s
请通过DevEco Studio打开ohos工程后配置调试签名(File -> Project Structure -> Signing Configs 勾选Automatically generate signature)
PS D:\flutter\atomgit\openharmony_flutter>
可以看到提示需要签名的错误,在按照提示操作时如果遇到下面的错误报告时

需要先启动模拟器(Tools -> Device Manager)或者连接一个设备后再次尝试即可。
2. 在模拟器上运行应用(flutter run)

至此,说明基于鸿蒙平台的flutter应用开发环境已经基本配置成功了。
上传代码到Atomgit
前面创建的openharmony_flutter项目的所有代码还都保存在本地,没有办法共享给其他同学或者记录开发履历,需要使用一种版本管理工具来进行管理,git是当前最流行的工具之一,而Atomgit又是支持基于git开发的远程代码库管理平台。这里就让我们用atomgit平台,来管理和分享我们的代码吧。
PS D:\flutter\atomgit\openharmony_flutter> git init .
PS D:\flutter\atomgit\openharmony_flutter> git add .
PS D:\flutter\atomgit\openharmony_flutter> git commit -s -m 'initial commit for the flutter openharmony example'
通过上述命令创建了本地代码库,并提交了工程项目中所有代码(记录在.gitignore文件中的路径除外),下面我们就需要将代码上传至atomgit平台了。

打开一个atomgit的链接并登录后(比如https://atomgit.com/),点击右上角的 新建->新建项目 即可打开一个如上所示的新项目创建页面,输入相关信息,点击创建项目即可。
然后就需要在本地操作将代码提交至atomgit了:
PS D:\flutter\atomgit\openharmony_flutter> git remote add atomgit git@atomgit.com:gcw_jOhhwlE7/openharmony_flutter.git
PS D:\flutter\atomgit\openharmony_flutter> git fetch --all
PS D:\flutter\atomgit\openharmony_flutter> git checkout atomgit/main LICENSE
Updated 1 path from df5d153
PS D:\flutter\atomgit\openharmony_flutter> git commit -s -m 'add LICENSE file'
[master fd1a93b] add LICENSE file
1 file changed, 201 insertions(+)
create mode 100644 LICENSE
PS D:\flutter\atomgit\openharmony_flutter> git push --force atomgit HEAD:main
** WARNING: connection is not using a post-quantum key exchange algorithm.
** This session may be vulnerable to "store now, decrypt later" attacks.
** The server may need to be upgraded. See https://openssh.com/pq.html
Enumerating objects: 245, done.
Counting objects: 100% (245/245), done.
Delta compression using up to 16 threads
Compressing objects: 100% (198/198), done.
Writing objects: 100% (245/245), 287.22 KiB | 2.41 MiB/s, done.
Total 245 (delta 25), reused 0 (delta 0), pack-reused 0 (from 0)
remote: Resolving deltas: 100% (25/25), done.
remote: Start Git Hooks Checking [PASSED]
To atomgit.com:gcw_jOhhwlE7/openharmony_flutter.git
+ a855360...fd1a93b HEAD -> main (forced update)
PS D:\flutter\atomgit\openharmony_flutter> git log --oneline LICENSE
fd1a93b (HEAD -> master, atomgit/main, atomgit/HEAD) add LICENSE file
PS D:\flutter\atomgit\openharmony_flutter>
上面代码中添加了atomgit remote, 所以最后一步中使用了git push --force atomgit HEAD:main,使用--force是因为我们在atomgit平台上创建的项目仓库和我们本地创建的项目仓库有冲突,所以需要强制进行。使用--force参数进行强制上传时一定要慎重,确保所有代码都是正确的,不然远程保存在atomgit上的仓库分支就会被覆盖到,以前的提交历史就找不回来了。后面本地再有更新的话就不需要使用--force选项了。
结束
至此环境搭建,应用创建/编译/运行,代码上传都已有所体验了,记录于此,以供有需要同学参考。如有不明错误之处,欢迎大家指正批评。
同时也欢迎加入开源鸿蒙跨平台社区:
https://openharmonycrossplatform.csdn.net
更多推荐



所有评论(0)