前言
最近在日常的开发工作中遇到了需要兼容HarmonyNext系统上的任务,后续根据查阅相关资料以及自己的花费一定时间踩坑,特地写下本文章已做记录,希望对你们有帮助。
开发环境
操作系统:Ubuntu Linux x64 和 MacOS(用来安装DevEco-Studio,用来打开模拟器,由于安装过于简单就不详细介绍了)
兼容HarmonyNext的Flutter版本:https://gitee.com/openharmony-sig/flutter_flutter (记得切换为dev分支)
开发套件: https://developer.huawei.com/consumer/cn/download/ (Command Line Tools for HarmonyOS NEXT Developer Beta1)
兼容HarmonyNext的Flutter版本上的readme中指的鸿蒙套件已经无效
接下来是关于环境变量的相关配置
值得一提的是,Flutter版本再pull时,请切换为最新,否则与官网开发套件版本不一致会影响到后续编译
开始配置环境变量,以下解压路径为:/root/work/ohos_build_tools/command-line-tools/ (改为你自己的解压路径)
#ohos
export OHPM_HOME=/root/work/ohos_build_tools/command-line-tools/ohpm
export HVIGOR_HOME=/root/work/ohos_build_tools/command-line-tools/hvigor
export DEVECO_SDK_HOME=/root/work/ohos_build_tools/command-line-tools/sdk
export PATH=$PATH:$DEVECO_SDK_HOME
export PATH=$PATH:$OHPM_HOME/bin
export PATH=$PATH:$HVIGOR_HOME/bin
export HDC_HOME=/root/work/ohos_build_tools/command-line-tools/sdk/HarmonyOS-NEXT-DB1/openharmony/toolchains
export OHOS_SDK_HOME=/root/work/ohos_build_tools/command-line-tools/sdk/HarmonyOS-NEXT-DB1/openharmony
export PATH=$PATH:$HDC_HOME
export PATH=$PATH:$OHOS_SDK_HOME
export HOS_SDK_HOME=/root/work/ohos_build_tools/command-line-tools/sdk
#Flutter
export PUB_HOSTED_URL="https://pub.flutter-io.cn"
export FLUTTER_GIT_URL="https://gitee.com/openharmony-sig/flutter_flutter.git"
export FLUTTER_STORAGE_BASE_URL="https://storage.flutter-io.cn"
#Flutter存放地址
export FLUTTER_HOME=/root/work/flutter_dev_new/flutter_flutter
export PATH=$PATH:$FLUTTER_HOME/bin
有人会问,我们用的不是Command-line-tools吗?为什么还需要配置DEVECO_SDK_HOME呢?
经过我踩坑发现,Command-line-tools 在以上最新版本上编译时,如果不指定DEVECO_SDK_HOME,会导致编译失败。
配置完环境后执行:Flutter doctor -v 检查Flutter与OpenHarmony的环境是否都为OK状态,都为OK则视为搭建成功!
项目编译
进入正题,我们前面已经配置好相关环境变量,接下来我们开始尝试编译
新建项目
创建你的第一个初始化的项目
flutter create --platforms ohos flutter_ohos_project
注:我们会发现创建后,相较我们原先版本会多出一个ohos的目录,这个是鸿蒙项目,可以简单理解为原Flutter中Android目录,用来配置鸿蒙相关信息,如果后续申请权限等都需要在里面进行配置,这个是后话了。
之后执行编译命令
flutter build hap --target-platform ohos-arm64 --release
之后等待编译结束,出现以下内容视为完成
请通过DevEco Studio打开ohos工程后配置调试签名(File -> Project Structure -> Signing Configs 勾选Automatically generate signature)
编译的hap包路径:项目地址/ohos/entry/build/default/outputs/default/entry-default-unsigned.hap
安装过程
由于我的DevEco-Studio 是安装在MacOS上,开发环境是在Ubuntu上,所以我们将Ubuntu打包出来的hap包,在DevEco-Studio启动模拟器后,进行拖拽安装即可,当出现安装成功,出现Flutter初始化项目计数页,则视为成功。
温馨提示
- 支持HarmonyNext的Flutter版本不为最新的情况下,会出现Flutter项目使用已兼容Dart 与 HarmonyNext的库无法正常编译通过的情况
结束语
感谢你的观看,希望对你有帮助。