前言
在进行分布式开发时,发现出现如下报错,deviceManager的部分接口找不到。
经过一番资料查找,了解到IDE下载的SDK为public-SDK,没有包含系统API
public-SDK是提供给应用开发的工具包,跟随DevEco Studio下载,不包含系统应用所需要的高权限API
full-SDK是提供给OEM厂商开发应用的工具包,不能随DevEco Studio下载,包含了系统应用所需要的高权限API
三方开发者通过DevEco Studio自动下载的API8版本SDK均为public版本。public-SDK不支持开发者使用所有的系统API,包括animator组件、xcomponent组件、@ohos.application.abilityManager.d.ts、@ohos.application.formInfo.d.ts、@ohos.bluetooth.d.ts等,如工程必须依赖于系统API,请按照以下步骤替换full-SDK。
下载full-SDK
full-SDK需要前往版本说明书手动进行下载。
例如笔者这里要替换为3.1.7.7的full-SDK,查看OpenHarmony SDK的保存路径。
发现在下载站点在OpenHarmony-v3.1.2-release.md中,下载对应系统的Full SDK压缩包。
下载后打开压缩包,打开我们需要的SDK包,例如笔者这里要ets的SDK。
打开对应压缩包,将该ets文件夹直接解压到OpenHarmony SDK路径下的ets目录下。
将ets重新命名为对应的版本号,如不清楚可以打开该目录下的oh-uni-package.json文件查看version字段例如这里为3.1.7.7(如果目录下原来已存在3.1.7.7,将原来的文件夹删除或者备份到其他路径下,后续替换成功可以删除)。
进入3.1.7.7\build-tools\ets-loader目录下,在该目录下打开cmd输入npm install命令即可。
**PS:**若提示找不到npm,需要配置一下环境变量,将以下路径添加到环境变量中即可。
以上为个人经验分享。