初学HarmonyOS需要注意的九点问题

系统 OpenHarmony
本文总结了作为鸿蒙初学者学习鸿蒙至今所遇见的九大注意,希望可以帮助到其他初学者们!一起共勉!

[[414083]]

想了解更多内容,请访问:

51CTO和华为官方合作共建的鸿蒙技术社区

https://harmonyos.51cto.com

一、HAP应用图标在桌面不显示

  • 问题描述:Build—Build Hap后运行,在桌面Hap的应用图标不显示。
  • 问题定位:config.json文件下module对象下distro属性配置出问题了。

  • 解决方法:把installationFree的值改为False即可。

二、关于DevEco硬编码文本的Warning

问题描述:

翻译为:

硬编码字符串’单击加1’,应使用$string:单击加1资源

检验信息:

硬编码文本

直接在布局文件中硬编码文本属性是不好的,原因如下:

  • 创建配置变体(例如横向或纵向)时,必须重复实际文本(并在进行更改时保持最新)
  • 仅通过为现有字符串资源添加新的翻译,无法将应用程序翻译为其他语言。

  • 问题定位:text的内容直接用文本是不好的,是DevEco不推荐的形式。
  • 解决方法:

1.数据分离(这样也方便后期修改)。用一个json文件存数据,text这里使用ohos:text=“$String:Name”

2.对string.json文件进行修改

注:

关于zh和en的关系,DevEco做了国际化处理,如果是中文就自动用zh里的json文件,英文就用en。其他语言就用element下的json。

三、image_src格式不规范

  • 问题描述:

‘.’ is not a valid resource name character

“.”不是有效的资源名称字符

Validates resource references inside Harmony XML files

验证XML文件中的资源引用

解决方法:

  1. ohos:image_src="$media:log" 

四、 ScrollView组件使用时不能完全显示

  • 问题描述:在ScrollView内可以显示其内部的组件!但是我这里显示不出来了!

其原因是因为:

  1. ohos:match_viewport="true" 

这一行代码不能用!导致了覆盖

  • 解决方法:
  • 删除后的效果

五、子组件layout_alignment不生效

  • 问题描述:子组件设置水平居中ohos:layout_alignment=“horizontal_center”,显示出来却没居中。

  • 问题定位:子组件的宽度设置为跟父组件一样,子组件layout_alignment无效。

  • 解决办法:

六、快速重写方法

  • 问题描述:有时候需要重写很多生命周期函数,很麻烦。
  • 问题解决:DevEco提供了快速重写的方法Code-Override Methods。

七、previewer失败

  • 问题描述:在本地预览功能previewer的时候,发现失败了。
  • 问题定位:Tools中preview Tool没下载或者不适配。
  • 解决方法:通过-Tools-SDK Manager-Tools 把previewer进行下载。

八、远程真机自动签名

  • 问题描述:在https://developer.huawei.com/建立好项目和应用,返回到DevEco的后进行自动签名,一直刷新不出来。
  • 问题定位:远程真机需要一直打开,自动签名才会成功。
  • 解决方法:打开远程真机,在https://developer.huawei.com/建立好项目和应用,返回DevEco。点击Project Structure-project-signing config。

九、轻量级设备开发中Direction的变化

问题描述:新版的DevEco中标签direction的使用方法上下左右的属性值变化了。

  1. toNextPage(e){ 
  2.     switch(e.direction){ 
  3.         case'left'
  4.         router.replace({ 
  5.             uri:'pages/index/index' 
  6.         }); 
  7.         break; 
  8.         case'down'
  9.         router.replace({ 
  10.             uri:'pages/index/report1/report1' 
  11.         }); 
  12.  
  13.     } 
  • 问题定位:

上-top(老版本-up)

下-bottom(老版本-down)

左-left

右-right

  • 问题解决:
  1. //调整以后的代码 
  2. toNextPage(e) { 
  3.     switch (e.direction) { 
  4.         case 'left'
  5.         router.replace({ 
  6.             uri: 'pages/index/index' 
  7.         }); 
  8.         break; 
  9.         case 'bottom'
  10.         router.replace({ 
  11.             uri: 'pages/index/report1/report1' 
  12.         }); 
  13.     } 

总结

学习鸿蒙一个多月了,总结一下这段时间折磨过我的问题,希望可以帮助到大家!

想了解更多内容,请访问:

51CTO和华为官方合作共建的鸿蒙技术社区

https://harmonyos.51cto.com

 

责任编辑:jianghua 来源: 鸿蒙社区
相关推荐

2020-03-19 15:02:53

Go语言学习

2019-06-23 16:02:12

Kubernetes集群节点高并发

2013-09-29 10:36:08

VMware虚拟化

2009-04-23 14:30:19

UML建模

2020-10-26 14:01:22

Java泛型

2009-07-16 09:25:27

Java常量定义

2023-10-04 00:03:00

SQL数据库

2018-08-28 06:21:19

网线布线线缆

2014-12-23 13:50:46

多播组播

2023-12-21 10:34:04

2016-02-01 16:04:45

开源创业关键点

2009-08-10 15:56:35

802局域网网桥兼容性

2016-01-31 10:59:19

设计app

2009-08-07 13:16:59

C#读取Excel数据c# 读取excel

2016-12-26 18:51:34

AndroidJavascriptJSONObject

2010-04-21 10:04:33

Oracle移植

2013-09-03 13:01:01

团队管理团队

2021-02-05 17:35:07

数据高管CIO技术

2011-05-26 17:37:11

Ajax

2015-10-26 10:24:11

数据中心DCIM
点赞
收藏

51CTO技术栈公众号