flutter 适配鸿蒙next,并打包为HAP安装包
1.下载针对OpenHarmony的Flutter版本
仓库链接https://gitee.com/openharmony-sig/flutter_flutter,仓库里为mac和linux版本的配置。下面是在自己win本上的环境变量配置过程。
1.1 下载鸿蒙套件,这个并不需要申请了,可以直接去官网下载。
下载链接:https://developer.huawei.com/consumer/cn/download/all 我下载的是beta1的最后一个版本,建议下ide,因为如果下命令行那个配置签名比较复杂,下ide的话会自动配置签名,ide里面带有command line和sdk。
下载过程就比较简单一路next基本就没有问题。
1.2 git clone 上面链接中的代码
我看issue中说的是要选择dev分支,不要选master分支的,dev不断在更新相比master拥有更多功能,但最近我看dev分支已经合并到master分支上了,两者区别应该不会很大。下面是dev分支的clone命令。
git clone -b dev :openharmony-sig/flutter_flutter.git
下载后,在环境变量系统变量path中添加 ×××/flutter_flutter/bin
1.3环境变量配置(SDK,node,ophm,hvigor)以及国内镜像
(一)SDK配置
刚才下载的Deveco Stdio中有已经有了sdk
然后在配置环境变量中添加环境变量,其中的路径要根据自己的下载路径修改(下同),其中这个sdk的api版本是12。
(二)Node,ophm ,hvigor配置配置
下图中,需要配置的环境变量德文都在tools文件夹下。
在环境变量中的系统变量path变量中追加 Node,ophm ,hvigor的路径
(三)设置Dececo_SDK的环境变量
这里可能会引起后面的一个错误,因为下面路径中DevEco Stdio中有空格,会导致后面无法识别到正确的路径。但影响不大,后面可以修改
(四)国内镜像
同样在系统变量中添加
PUB_HOSTED_URL=https://pub.flutter-io.cn
FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
1.4 验证是否正确配置
打开cmd命令行窗口,输入
flutter doctor -v
运行后,正确配置效果如图。确保flutter和HarmonyOS配置成功。
第一次输入flutter doctor -v 中, 会出现这个错误。
原因是DevEco Stdio之间有空格,cmd命令行中自动截断,导致路径错误,这里只需在路径前后加上双引号就可以解决。
flutter config --ohos-sdk="×××DevEco StudiosdkHarmonyOS-NEXT-DB1openharmony"
2.下载或构建鸿蒙Flutter Engine的构建产物(此步可以不需要,根据最新的,如果不指定--local engine,默认是用云端的引擎)
应用构建依赖鸿蒙Flutter Engine构建产物,这里建议直接使用官方已经构建好的产物,自己去构建费时费力换可能构建失败,下载好的产物为散个压缩包,分别为debug profile release,对需要打包的类型进行解压,解压后的文件夹如下:
这里我选择的是release版本,
FlutterTools指令运行参数中添加--local-engine字段来指定下载的engine:--local-engine=src/out/<engine产物目录> ,若不使用--local-engine来指定engine,默认使用云端最新版engine。 使用示例:flutter build hap [--local-engine=/Users/admin/Documents/flutter_engine/src/out/ohos_debug_unopt_arm64]
3.创建Flutter工程
一.创建工程
# 创建工程 方式一 该方式只创建了ohos平台
flutter create --platforms ohos <projectName>
# 创建工程 方式二 该方式创建了android,ios,ohos三个平台
flutter create <projectName>
二. 进入工程根目录编译
cd /Users/kk/Desktop/develop/project/hmosdemo
编译产物在${projectName}/ohos/entry/build/default/outputs/default/entry-default-signed.hap下
然后hap打包,可以选release,debug,profile三个版本,debug版本包相对大一点。
flutter build hap --release/debug/profile
如果你想使用之前你下载的Flutter Engine的构建产物,可以使用下面这条指令,后面的参数对应的是你上一步解压出来的engine产物路径
flutter build hap --local-engine = E:flutter_flutterengine-windows-x86ohos_release_arm64-1806-windows-AMD64srcoutohos_release_arm64
下图即为打包为鸿蒙hap的结果。
三. 鸿蒙真机运行Flutter项目
一. 在运行到真机之前,需要对项目进行签名,具体操作如下:
在file中选Project Structure 勾选红色箭头所指位置,或者也可以在右上角红色箭头出打开。勾选后,打包时就会自动签名。
二. 通过鸿蒙真机运行Flutter项目(目前只有arm架构的mac才支持模拟器模拟)
方式一:进入项目目录指定构建方式编译hap包并安装到鸿蒙手机中
flutter run --debug -d <deviceId>
方式二:进入工程根目录编译hap包,然后安装到鸿蒙手机中
flutter build hap --debug
hdc -t <deviceId> install <hap file path>
方式三:使用DevEcoStudio 选择设备为真机,在此之前需要在手机打开开发者选项,连接到手机后,点击启动。
我遇到的几个比较难的几个问题问题
自动签名失败,我自己也重装了ide,还有重建了项目,但自动签名就是勾选不上,build-profile.jason5文件中signingConfigs也一直空的。这里解决办法是自己去配置签名。这个官方文档中手动配置签名的教程。https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V2/signing-000000-V2
配置成功后build-profile.jason5文件中应该长这样。
还遇到过SDK缺失的问题,SDK目录下的内容我照着别人看了一下也没缺少,目录里的文件我也没改动,但是有错误,在第一天有错误的时候,我重装了Deveco studio,重新创建了项目,但依旧有这个问题,网上有个issue问题和我差不多,但他是run的时候显示缺失,虽然他的问题现在还没解决,但我还是照着下面的评论做了一个,依旧有报错,但过了一天,我重建了项目,就顺利打包了,很神奇只能说。
到此这篇github镜像简书(github镜像源)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/bcyy/25175.html