|
HarmonyOS学习之五:OpenHarmony开发中常见问题, 在搭建环境中经常遇到一些问题,下面的三类分别进行了归纳和汇总:
一、环境安装
- HarmonyOS SDK是否需要手动下载?不需要。在DevEco Studio中的“Settings > Appearance & Behavior > System Settings > HarmonyOS SDK”进行配置,选择安装路径后,DevEco Studio会自动联网进行SDK的下载。
- 为什么无法自动下载SDK和相关工具?检查是否成功连接Internet网络,如果所在网络被管控,不能直接访问外网,则需配置网络代理。可在“Settings > Appearance & Behavior > System Settings > HTTP Proxy” 进行配置。
二、功能开发
- 如何查看“config.json”文件的所有字段说明?“config.json”文件的各字段说明请查阅配置文件的元素。
- 怎么实现Ability可以被其他应用调用?开发者需要在“config.json”文件中将“abilities”字段的“visible”标签设置为true。
- 权限声明在哪里进行添加?开发者需要在“config.json”文件中的“reqPermissions”字段中声明所需要的权限,具体配置方法请参考申请权限。
- 使用数据库注解相关功能前有什么注意事项?使用注解功能需在模块的“build.gradle”文件的“ohos”节点中增加如下配置项(不使用注解功能无须配置):
- compileOptions{
- annotationEnabLED true
- }
- 使用<image>标签引入本地图片,但图片无法加载?图片无法加载的可能情况有三种:
- 没有给图片设置宽度和高度,需要在对应的page目录下的css样式文件中设置图片的宽高。使用<image>标签的图片不会自动缩放,图片宽高超过组件的宽高会自动截取。
- 图片引入路径错误。图片引入的路径必须是项目编译后的静态文件的路径。
- 在导入图片或添加/删除页面后没有重新编译。需要重新编译刷新target文件中的代码。
- 如何在后一个页面获取前一个页面传递过来的参数?有三种方式可以获取前一个页面的参数。以如下场景为例:有两个页面“index”和“detail”,第二个页面“detail”需要获取从第一个页面“index”传递过来的参数。
- 如果参数需要在页面中引用,可以直接在“detail.hml”中使用`{{参数名}}`的形式进行引用。
- 如果需要对参数进行操作,在“detail.js”中,直接用this.参数名的形式使用。
- 可以在“detail.js”的data域中定义一个同名参数进行接收,注意以这种方式接受的参数将覆盖已有的参数。
- 如何查询设备支持的硬件/软件功能?如何查询设备是否支持某个硬件/软件特性?
- 图片为什么显示不全?父类容器大小不能小于子组件容器大小。
- 应用通过调用IBundleManager接口类中的getSystemAvailableCapabilities方法,可以查询设备支持的硬件/软件功能列表。具体的功能定义可以通过ohos.utils.CapabilityConstants类查询。
- 应用通过调用IBundleManager接口类中的hasSystemcapability方法,可以查询设备是否支持某个硬件/软件功能。具体的功能定义可以通过ohos.utils.CapabilityConstants类查询
9. 图片为什么显示不全?父类容器大小不能小于子组件容器大小。
三、调测验证
- 编译工程提示“This device type does not match project profile.”或安装时出现“DEVICE_NOT_SUPPORT_ERROR”,如何解决?出现这种情况是由于“config.json”中配置的设备类型与调试设备类型不匹配,需要在“module”标签下配置对“deviceType”的定义。具体请参考表7的“deviceType”。
- 安装HAP失败,并提示“INCONSISTENT_BUNDLE_VERSION”,如何解决?系统中有重复应用,卸载系统中已有的包名相同的应用。
- 提示“signingConfig \“debug\“ can not be null or empty”,如何解决?检查“entry”下的build.gradle是否配置了签名。如果配了依然报错,检查是否误配到了工程级的build.gradle当中。
- 安装HAP失败,并提示“STRING_LENGTH_ERROR”,如何解决?可能原因有:
- 包信息超过最大长度。包信息中包含的各属性字符串长度需要同时满足以下条件,否则会报错。
- bundleName的长度为7~127个字节。
- vendor的长度为0~255个字节。
- version.name的长度为0~127个字节。
- 同时安装两个不同module生成的hap时,包信息不一致。需要比对两个module的“config.json”文件中“app”标签配置内容是否一致。
文章来源:jyl_sh |
|