给华为反馈的HarmonyOS Bug与解决进度,涉及底层、java、js等 精华
下面的问题绿色代表当前已解决,蓝色代表华为已经有解决方案并在新版本中解决,红色代表未解决,黑色代表自己想出的规避解决方案,但是还是希望官方能够解决。
一、工具相关
(1)xml代码中飘红现象,但是实际代码运行时生效的
该问题已经在SDK4中解决,如果之前安装过SDK3,需要手动将SDK3删除才不会有此问题。
(2)graphic目录下的代码编写无任何提示
该问题已经在规划中,下一个IDE版本发布解决
(3)$media、$graphic等无法关联跳转
该问题已经在规划中,下一个IDE版本发布解决
(4)Eco Studio无法导入外部module
单独编写了一个手动导入的办法,请见我另一篇帖子。
二、JS代码相关
(1)、JS FA调用java PA的一个关键操作引入,功能正常,但是IDE飘红
该问题已经在下一个SDK版本中解决,等待发版本
(2)、JS vedio标签中control属性设置为false,视频有声音没图像
该问题卡了非常之久,最开始认为不是bug,是我单例现象,华为方其他合作方和内部开发测试无问题。后来我经过模拟器、真机、精简代码、反复对比测试等各种手段发现依然不行,最后拉了华为各个领域的一堆技术支持支撑,最终确认这就是bug,根因是对外发布的版本有一段代码没有合入,确认此bug之后会在后续版本中更新此问题。
(3)、js中的dialog只能从屏幕底部弹出,并且不能设置dialog的位置为屏幕居中
(4)、js FA中的img或者vedio标签如何加载ava PA中传递过来的图片或者视频
(5)、在tv和Wearable居然不支持setTimeout和setInterval方法,仅仅只能在LiteWearable上支持
下面是我的代码,
然后这个打印结果没有出来,取而代之的是一个底层的报错,截图如下
在TV和Wearable上都会报这个错。
后来通过翻阅HarmonyOS底层源码等方式,自己尝试找到一个规避办法。
在app.js种调用了setTimeout方法,发现是可以正常执行的,没有我之前的那个TypeError的错误了,而之前在页面中直接调用这个是不可行的。瞬间像发现了新大陆了,于是我自己在app.js中定义一个mySetTimeout方法来进行中转setTimeout方法。代码如下,
然后我们就要想办法在页面中如何调用app.js中我们自己封装的方法了。于是页面中的代码可以这么写,如下图
在此,问题得到解决,setInterval的解决方案同理。
实现上虽然麻烦了点,总算是解决了问题,希望华为官方后面能更新api以支持可以直接页面中调用定时器。
三、Java代码相关
(1)、不支持webview
(2)、java读写本地文件,文件路径如何编写?
目前官网手册上编写了动态权限、读写文件相关的api,但是官网手册上写的路径的写法是不可靠的,这个路径具体如何编写?比如读取sdcard下的,读取app自带目录的,/data/data/app包名。 并且关于如何读取工程rawfile目录下的文件,官网描述了如何读取的api,但是路径如何取不清楚,这个自己试出来了。
(3)、不支持系统相册调用
(4)、Java graphic文件中支持shape但是不支持selecter写法,不方便快速定制一些UI效果。
(5)、模拟器不支持横竖屏切换,SDK也没有横竖屏切换相关的api??
(6)、远程模拟器没有声音
等待新版本更新解决
(7)、远程模拟器只能启动一个,没有本地模拟器,无法通过模拟器做传感器、分布式等开发
等待新版本更新解决
四、开发板相关
(1)开发板烧录经常会出现boot烧挂的现象,烧挂之后如何补救
补救措施单独编写了一份文档给华为方
(2)只能支持多进程单线程,不支持信号量
五、官网手册错误纠正
(1)、错误案例连接地址 https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ui-js-fa-developing-0000000000500572
这个循环遍历数据的功能是开发中最常用的功能了,这里居然是错的,狠狠得把我误导了不少时间,还好最后在官网api手册上找到了
目前官网已经修复
(2)、错误案例链接地址 https://developer.harmonyos.com/cn/docs/documentation/doc-guides/wearable-adding-module-0000001053581601
目前官网已经修复
DevEco Studio导入外部module的功能比较实用,请见该文作者的另一篇帖子:https://harmonyos.51cto.com/posts/2718
希望鸿蒙生态能多一些这样用心的开发者!👍👍👍👍👍👍
共同努力
谢谢老师分享
夏老师很细心👍👍👍
编程学的不错呀
我们开发过程中也发现了一些的误导,比如sdk中的关键字和文档中的出入,边缘华的动效api缺失,做的东西比较生硬。鸿蒙加油