操作系统的选择

对于操作系统的选择上,推荐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盘):

各软件下载及安装方法

以供方便:

环境变量的设置

基于环境依赖 中提到的变量设置,基本上鸿蒙平台相关的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

Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐