#盲盒+码##跟着小白一起学鸿蒙#如何编译OpenHarmony自带APP 原创 精华
如何编译OpenHarmony自带APP
作者:王石
概述
OpenHarmony的主干代码是开源社区的重要学习资源,对于想进行应用开发和熟悉OpenHarmony能力的同学主干代码是非常重要的资源,在主干代码的applications目录里聚集了很多原生的应用实现,那么如何编译这些代码就是我们这篇文章的主要议题。
下载代码
参考《[#跟着小白一起学鸿蒙# 一]运行OpenHarmony》文章下载OpenHarmony代码
使用DevEco导入编译
- 导入代码
- 自动下载npm包
导入应用后,IDE工具就会自动sync相关依赖npm包,完成之后会出现以下界面
- 然后即可以开始build
-
一些报错处理
-
sdk依赖缺失
以上错误即为sdk缺失导致,也就是import wifi from ‘@ohos.wifi’;这个d.ts文件里没有和主干最新的接口和功能同步,这时候偷懒的法子就是在对应的文件头增加// @ts-nocheck,如下。如果是正规方式,则应该找主干代码里的对应文件,拷贝到IDE的sdk目录下。
按以上套路能编译出来,提示信息如下:
-
hap包没有签名
按以上套路编出来的,会发现没有签名的hap包。如图:
-
这时候应该走File -> Project Structure -> Signing Configs -> automatically generate signature,如果有选中需要取消选中然后再选中,然后apply,最后OK。
但是这时候其实还没有显示出来,其实上面的报错也有显示,即:
```bash
> hvigor WARN: Will skip sign 'hap'. Invalid signingConfig is configured for 'default' product.
```
这是因为命名不匹配,需要修改build-profile.json5文件的signingConfig:
```bash
"signingConfig": "release" 改成 "signingConfig": "default"
```
这样应该就能编译出signed.hap这应用程序包了
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
-
install的权限问题
如果在安装的时候发现install的权限报错,则是很有可能是权限配置问题。OpenHarmony的应用分一般应用和系统应用,系统自带的applications大多是系统自带应用,所以配置IDE工具sdk里的UnsgnedReleasedProfileTemplate.json,具体位置在:sdk\toolchains\3.2.7.5(对应下载和使用的sdk版本)\lib。在这个文件里,我们需要修改以下位置:
这样一般就可以安装了
-
Install的包名问题
我们OpenHarmony主干拷贝出来的application的包名一定会和板子上运行的原程序同名的,这样安装时也会提示报错,这种时候,我们需要修改"bundleName": “com.ohos.settings”, 以及sign文件里的对应的名字。大概是两个文件:
-
product\phone\build\default\intermediates\merge_profile\default\module.json
-
build-profile.json5
-
小结
通过上述方式,我们就能编译并安装运行OpenHarmony自带的应用并学习基础能力的开发了
赞楼主持之以恒的分享精神
Install的包名问题?
如果是安装两个系统应用有时候可能不方便调试,比如kikaInput、Launcher、Settings等。
可以通过删除system/app/XXX(bundleName)下的相关hap包,重启系统后,再通过hdc file send 的方式,将同名的应用包上传至system/app/XXX(bundleName)目录下,再重启系统也可以实现覆盖安装。
提示:有些系统应用如果安装后出现无法加载,比如Launcher,新的应用包上传后重启无法进入桌面,可以通过重刷系统UserData分区即可正常加载。
赞,