电子产业一站式赋能平台

PCB联盟网

搜索
查看: 1556|回复: 0
收起左侧

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

[复制链接]

2607

主题

2607

帖子

7472

积分

高级会员

Rank: 5Rank: 5

积分
7472
发表于 2020-11-26 11:56:38 | 显示全部楼层 |阅读模式
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
回复

使用道具 举报

发表回复

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

本版积分规则


联系客服 关注微信 下载APP 返回顶部 返回列表