HAR(Harmony Archive)是静态共享包,可以包含代码、C++库、资源和配置文件。通过HAR可以实现多个模块或多个工程共享ArkUI组件、资源等相关代码。HAR不同于HAP,不能独立安装运行在设备上,只能作为应用模块的依赖项被引用。

打包har

!工程为Stage模型

在工程中创建HAR模块,New Module选择Static Library

在该Module的build-profile.json5中添加"artifactType": "obfuscation"开启代码混淆

在该模块中编写业务代码

……

需要在har外部调用的ArkUI组件、TS类、方法,使用 export 修饰(不要添加default)。

方法可以作为类的成员导出,也可以单独导出。

Module根目录下的index.ets是HAR导出声明文件的入口,HAR需要导出的接口,统一在index.ets文件中导出。

注意事项

1.HAR不支持在配置文件中声明abilities、extensionAbilities组件。

2.HAR不支持在配置文件中声明pages页面。

3.HAR不支持在build-profile.json5文件的buildOption中配置worker。

4.FA模型与Stage模型的HAR不支持相互引用。

5.Stage模型的HAR,不能引用AppScope内的内容。在编译构建时APPScope中的内容不会打包到HAR中,导致HAR资源引用失败。

构建

编写完成后再工具栏中选择Build->Make Module ‘Module名称’(比如我的Module是vpn)

构建完成后在build目录下就可以获取到har包

引用har

把har放到想要使用的工程的任意目录下,习惯放在Module的libs目录

然后在Module的oh-package.json5文件中引用该har

"@ohos/vpn": 'file:./libs/vpn.har'

同样是key-value的形式,key建议使用@ohos/开头,后面名称自定义,value为file:后面跟上har的路径

修改完成点击Sync Now,依赖包会存储在工程的oh_modules目录下

注意:覆盖修改har之后需要删除oh_module目录重新生成,否则可能不更新

在代码中使用该har

import { Add } from '@ohos/vpn'
import { func2 } from '@ohos/vpn'
import { MainPage } from '@ohos/vpn'import promptAction from '@ohos.promptAction'@Entry
@Component
struct Index {@State message: string = 'Hello World'build() {Row() {MainPage()//引用har的ArkUI组件Column() {Text(this.message).fontSize(50).fontWeight(FontWeight.Bold).onClick(() => {const a = new Add()//引用har的TS类const b = a.add(1, 3)const c = func2()  //引用har的方法promptAction.showToast({ message: c + '' })})}.width('100%')}.height('100%')}
}

HarmonyOS工程har的打包与引用相关推荐

  1. 鸿蒙应用开发学习|HarmonyOS工程介绍

    系列文章目录 第一章 HarmonyOS是什么 第二章 基础环境和开发工具 文章目录 系列文章目录 前言 一.HarmonyOS工程介绍 二.工程目录结构 三.工程目录介绍 1.entry 2.Abi ...

  2. VS2012 将工程编译为Release,引用dll找不到的问题

    VS2012 将工程编译为Release,引用dll找不到的问题 前言: 我们再vs中编写的项目,经常需要将项目编译为Release版本拷贝给他人使用,但是,我们引用的很多dll文件别人的电脑上有时候 ...

  3. HarmonyOS工程【鸿蒙开发专题02】

    上一节教大家跑通了demo 这一节一起来了解HarmonyOS工程 春节不停更,此文正在参加「星光计划-春节更帖活动」 作者:坚果 公众号:"大前端之旅" 华为云享专家,InfoQ ...

  4. DEA中创建父子工程与maven打包Springboot聚合工程报错程序包不存在

    DEA中创建父子工程与maven打包Springboot聚合工程报错程序包不存在 问题描述 springboot 项目打包(package)或安装到仓库(install)的时候报错:程序包com.fu ...

  5. Windows Java JavaFX IntelliJ IDEA 开发环境搭建 创建工程 编译运行 打包分发 自定义运行时

    博文目录 文章目录 本文说明 JavaFX 简单说明 JavaFX 版本说明 JavaFX 与 JDK 的关系 JavaFX 与 JDK Modular (JDK 9 模块化系统) JavaFX 模块 ...

  6. webpack打包后引用cdn的js_呕心沥血编写的webpack多入口零基础配置 【建议收藏】...

    最近在做项目的时候遇到了一个场景:一个项目有多个入口,不同的入口,路由.组件.资源等有重叠部分,也有各自不同的部分.由于不同入口下的路由页面有一些是重复的,因此我考虑使用 Webpack 多入口配置来 ...

  7. Android Studio打包和引用aar

    一.简介 Android 库在结构上与 Android 应用模块相同.它可以提供构建应用所需的一切内容,包括源代码.资源文件和 Android 清单.不过,Android 库将编译到您可以用作 And ...

  8. webpack打包后引用cdn的js_手摸手 Webpack 多入口配置实践

    最近在做项目的时候遇到了一个场景:一个项目有多个入口,不同的入口,路由.组件.资源等有重叠部分,也有各自不同的部分.由于不同入口下的路由页面有一些是重复的,因此我考虑使用 Webpack 多入口配置来 ...

  9. Android studio 分渠道打包,引用不同的moudle

    转自:https://github.com/itlgl/note/issues/36 如何简单的使用keystore文件为apk签名 在项目根目录下创建文件夹keystore,并将签名文件比如keys ...

  10. 从Noob开始学习python/pyqt5(1)环境安装,工程搭建与打包exe

    前言 本人从今年4月份左右开始想自学python和pyqt5,主要是想提升一下自己的技能,我是一个汽车电子嵌入式软件工程师,每天就是C语言和AutoSAR,感觉都不好意思自称为一个"码农&q ...

最新文章

  1. 【ubuntu工具】bless:二进制查看工具,类似win下的UltraEdit
  2. 人群密度估计--CNN-based Cascaded Multi-task Learning of High-level Prior and Density Estimation for Crowd
  3. hdu1754(简单线段树)
  4. springMVC——Xml配置方式实现Helloworld
  5. Pytorch采坑记录:每隔num_workers个iteration数据加载速度很慢
  6. 梯度下降法快速教程 | 第二章:冲量(momentum)的原理与Python实现
  7. Onvif开发之Linux下gsoap的使用及移植
  8. antd 选择文件夹_antd 手动上传文件
  9. Pytorch——常用的神经网络层、激活函数
  10. java版spring cloud+spring boot+redis社交电子商务平台(十七)上传文件
  11. warning C4482: 使用了非标准扩展: 限定名中使用了枚举
  12. 微信-连接一切的力量
  13. Mac M系列电脑 模拟器运行时 pods库 YYkit库报错
  14. IE 获取不到元素 img标签层级默认变高
  15. 仓库盘点好方法,使用安卓盘点机PDA扫描商品条码进行超市盘点
  16. A*算法解决8数码问题python实现
  17. 锂离子电池电量计原理概述
  18. 十万条评论告诉你,给《流浪地球》评1星的都是什么心态? | Alfred数据室
  19. Minio 图片永久访问的问题处理
  20. ndows 10,win10系统 win10系统下载 windows10系统下载-大地系统官网

热门文章

  1. java+springmvc+vues ssm454高校信息资源共享平台#毕业设计
  2. 天下第一补原来是这件事
  3. 周末游记--第一次游圆明园
  4. Java Web 应用的安全攻防之 CSRF 漏洞分析
  5. git-p4 多个分支与版本合并 merge
  6. 最少联通代价【曼哈顿距离】
  7. 基于51单片机的智慧农业大棚仿真
  8. 某单位“探索性测试”内训圆满结束!
  9. matlab电机系统建模,基于Matlab/Simulink交流电机矢量控制系统建模与仿真
  10. 【Android入门到项目实战-- 9.5】—— 陀螺仪传感器的详细使用教程