序言
实践过程中的部分视频演示
- https://www.bilibili.com/video/BV1Dp4y1w7kP
- https://www.bilibili.com/video/BV1Fj411t7mM
- 由于支持OpenHarmony的Flutter发布不久,还存在若干问题和文档遗漏,随着时间的推移都在不断完善,本文是我在搭建开发环境和探索研究过程下来的一个详细笔记,希望对大家有所帮助!
- 文中涉及到的一些源码存放目录和环境变量配置,请根据你实际存放的位置进行相应的调整。
- 文章附件提供Flutter打包的OpenHarmony应用hap样本,可供参考研究
环境概述
- Ubuntu 22.04 (虚拟机)
- Flutter Engine https://gitee.com/openharmony-sig/flutter_engine
- Flutter SDK https://gitee.com/openharmony-sig/flutter_flutter
- ohos-sdk-full 4.0 beta2 http://ci.openharmony.cn/workbench/cicd/dailybuild/dailylist
Flutter Engine 环境和编译
安装依赖
- sudo apt install git curl unzip pkgconf python3-pip
- depot_tools
获取源码
编译构建
开始编译:
出现如下错误:
解决方案,忽略编译警告,重新编译通过修改 /home/ubuntu/work/engine/src/build/config/compiler/BUILD.gn。
编译成功输出目录:
Flutter SDK 环境和配置Clone SDK
~/.bashrc 完整环境
可以参考下,根据你实际的存放位置修改路径。
环境细节
- Command Line Tools for OpenHarmony
- ohcommandline-tools-linux-2.0.0.2.zip
- use ohos-full-sdk api10
- ohpm/in/init 安装 ohpm 如果失败多尝试几次
- developtools_hapsigner
- 参照developtools_hapsigner的readme,编译得到 hap-sign-tool.jar ,确保其在目录下:./hapsigntool/hap_sign_tool/build/libs/hap-sign-tool.jar(编译需要 jdk11 + gradle7.1)
- 进入autosign文件夹,执行命令 chmod 777 *.sh,并且新增 profile_tmp_template.json 文件,编辑如下:
- 编辑 autosign.config 和 createAppCertAndProfile.config,修改值:sign.profile.inFile=profile_tmp.json。
- 配置 <当前项目flutter_flutter目录>/bin 到环境变量PATH,确保 which flutter 能找到 <flutter sdk>/bin/flutter 位置
- 运行 flutter docker,检查环境变量配置是否都正确。
- 打开vscode,安装flutter插件,如果flutter sdk配置正确,可发现OpenHarmony连接设备,可在vscode上运行和调试应用。
补充细节
- ohos-sdk & hdc,通过 ohsdkmgr 手动下载SDK,添加api10的full-sdk,并配置到环境变量。
- npm 需要正确配置 .npmrc,否则后续 hvigor 编译ohos项目会出错。
项目创建编译等命令
常用命令:
实践命令(创建项目并打包hap)。
flutter build hap -h。
hdc找不到已连接设备的解决方案
在Linux下在非root权限下使用hdc会出现无法找到设备的情况,此问题原因为用户USB操作权限问题,解决方法如下:
或者su切换到root用户下运行。
这样操作之后 hdc list targets 可查看到已连接的OH设备。
文章相关附件可以点击下面的原文链接前往下载:
https://ost.51cto.com/resource/3049