[文章]

HarmonyOS学习之五:OpenHarmony开发中常见问题

2020-11-26 10:04:11  133 HarmonyOS 常见问题
分享
1
在搭建环境中经常遇到一些问题,下面的三类分别进行了归纳和汇总:
一、环境安装
  • 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

相关文章

评论

您需要登录后才可以回帖 登录 | 注册

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
发文章