Skip to main content

鸿蒙开发的尝试

arkts和flutter

一个是js魔改一个是flutter 的魔改。

prepare dev env.

flutter 鸿蒙版

oh-3.35.7-release版本

下载鸿蒙的flutter:

git clone https://gitcode.com/openharmony-tpc/flutter_flutter.git
git checkout -b dev origin/dev

下载flutter 后:

flutter doctor -v
[!] Flutter (Channel [user-branch], 3.35.8-ohos-0.0.3, on macOS 15.6 24G84 darwin-arm64, locale en-US) [240ms]
! Flutter version 3.35.8-ohos-0.0.3 on channel [user-branch] at /Users/lela/Downloads/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.
! Upstream repository https://gitcode.com/openharmony-tpc/flutter_flutter.git is not a standard remote.
Set environment variable "FLUTTER_GIT_URL" to https://gitcode.com/openharmony-tpc/flutter_flutter.git to dismiss this error.
• Framework revision 65cbbee1fa (4 weeks ago), 2026-03-14 19:06:02 +0800
• Engine revision 035316565a
• Dart version 3.9.2
• DevTools version 2.48.0
• Pub download mirror https://pub.flutter-io.cn
• 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 /Applications/DevEco-Studio.app/Contents/sdk, available api versions has [22:default]
• Ohpm version 6.0.1
• Node version v18.20.1
• Hvigorw binary at /Applications/DevEco-Studio.app/Contents/tools/hvigor/bin/hvigorw

[!] Android toolchain - develop for Android devices (Android SDK version 36.1.0) [405ms]
• Android SDK at /Users/lela/Library/Android/sdk
• Emulator version 36.2.12.0 (build_id 14214601) (CL:N/A)
✗ cmdline-tools component is missing.
Try installing or updating Android Studio.
Alternatively, download the tools from https://developer.android.com/studio#command-line-tools-only and make sure to set the ANDROID_HOME
environment variable.
See https://developer.android.com/studio/command-line for more details.
✗ Android license status unknown.
Run `flutter doctor --android-licenses` to accept the SDK licenses.
See https://flutter.dev/to/macos-android-setup for more details.

[] Xcode - develop for iOS and macOS (Xcode 26.1.1) [652ms]
• Xcode at /Applications/Xcode.app/Contents/Developer
• Build 17B100
• CocoaPods version 1.16.2

[] Chrome - develop for the web [17ms]
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[] Android Studio (version 2025.1) [17ms]
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 21.0.8+-14018985-b1038.68)

[] IntelliJ IDEA Community Edition (version 2025.2.4) [17ms]
• IntelliJ at /Applications/IntelliJ IDEA CE.app
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart

[] VS Code (version 1.115.0) [4ms]
• VS Code at /Users/lela/Downloads/Visual Studio Code.app/Contents
• Flutter extension can be installed from:
🔨 https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

[] Connected device (3 available) [5.7s]
• kai的iPhone (wireless) (mobile) • 00008110-001C14180140401E • ios • iOS 18.6 22G86
• macOS (desktop) • macos • darwin-arm64 • macOS 15.6 24G84 darwin-arm64
• Chrome (web) • chrome • web-javascript • Google Chrome 147.0.7727.55

[] Network resources [2.5s]
• All expected network resources are available.

! Doctor found issues in 2 categories.

这样就成功了。 配置一个shell脚本来编译环境吧。

java版本17+

java准备: java -version

鸿蒙ide

下载deveco-studio 直接官网最新版。

配置命令行环境

lela@lelas-MBP ~ % cat run_ohos.sh
# 鸿蒙环境设置
# 国内镜像
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
export FLUTTER_OHOS_STORAGE_BASE_URL=https://flutter-ohos.obs.cn-south-1.myhuaweicloud.com # 鸿蒙版的storage仓库

# 拉取下来的flutter_flutter/bin目录
export PATH=/Users/lela/Downloads/flutter_flutter/bin:$PATH

# mac环境
export TOOL_HOME=/Applications/DevEco-Studio.app/Contents # mac环境
export DEVECO_SDK_HOME=$TOOL_HOME/sdk # command-line-tools/sdk
export PATH=$TOOL_HOME/tools/ohpm/bin:$PATH # command-line-tools/ohpm/bin
export PATH=$TOOL_HOME/tools/hvigor/bin:$PATH # command-line-tools/hvigor/bin
export PATH=$TOOL_HOME/tools/node/bin:$PATH # command-line-tools/tool/node/bin%

项目开发

# 创建工程 方式一 该方式只创建了ohos平台
flutter create --platforms ohos <projectName>

# 创建工程 方式二 该方式创建了android,ios,ohos三个平台
flutter create <projectName>

编译

source run_ohos.sh配置环境。

# 进入工程根目录编译hap包
flutter build hap --debug # 调试版本
flutter build hap --release # 正式版本

编译出现问题在这里解决掉。

配置签名

签名配置,会默认提示登录华为开发者账号,提示后就可以自动配置了。

真机运行Flutter项目

通过flutter devices指令获取device-id。 方式一:进入项目目录指定构建方式编译hap包并安装到OpenHarmony手机中。

 flutter run --debug -d <deviceId>

方式二:进入工程根目录编译hap包,然后安装到OpenHarmony手机中。

 flutter build hap --debug
hdc -t <deviceId> install <hap file path>