HarmonyOS向华为反馈的HarmonyOSBugs及解决进度,涉及底层、Java、JS等。绿色表示目前已经解决问题,蓝色表示华为有解决方案并在新版本中解决,红色表示没有解决,黑色表示自己想出的翻墙方案,不过还是希望官方能解决一下。1.工具相关(1)xml代码出现发红的现象,但是这个在实际代码运行时才生效的问题在SDK4中已经解决了。如果之前已经安装过SDK3,需要手动删除SDK3才能避免出现该问题。(2)图形目录下没有提示写代码。这个问题已经在规划中,下个IDE版本会发布解决。(3)$media、$graphic等不能关联跳转。发布解决方案(四)EcoStudio无法导入外部模块,单独写一个手动导入方法,见我的另一篇帖子。2、JS代码相关(1)、JSFA调用javaPA的一键操作,功能正常,但是IDE是红色的。这个问题在下一个SDK版本已经解决了,等待release版本(2),将JS中控件的vedio标签属性设置为false,视频有声无图。这个问题卡了很久。一开始以为不是bug,是个例现象。华为其他合作伙伴和内部开发测试都没有问题。后来通过模拟器、真机、精简代码、反复对比测试等各种方法,发现还是不行。最后拉了一堆华为各个领域的技术支持,终于确认这是一个bug。一段代码没有被合并。确认该bug后,后续版本会更新该问题。(3)、js中的dialog只能从屏幕底部弹出,不能设置dialog的位置到屏幕中央(4)、js中的img或vedio标签FA如何加载avaPA(5)中传入的图片或视频,setTimeout和setInterval方法在tv和Wearable上不支持,只在LiteWearable上支持。下面是我的代码,然后打印结果出不来,换了个底层错误。截图如下:OnTVandWearable会报这个错。后来通过浏览HarmonyOS底层源码等,试图找到绕过的方法。我调用了app.js中的setTimeout方法,发现可以正常执行,没有出现我之前出现的TypeError错误,之前直接在页面调用这个是不行的。瞬间发现了一个新世界,于是在app.js中定义了一个mySetTimeout方法来调用setTimeout方法。代码如下,接下来我们就要想办法在页面中调用app.js中自己封装的方法了。所以页面中的代码可以这样写,如下图:到这里,问题就解决了,setInterval的解决方法也是一样的。虽然实现起来有点麻烦,但总算解决了问题。希望华为后期更新API,支持直接在页面调用定时器。3.Java代码相关(1),不支持webview(2),java读写本地文件,文件路径怎么写?目前官网手册写的是动态权限和读写文件相关的API,但是官网手册写路径的写法是不靠谱的。这个路径怎么写?比如读取sdcard下的目录,读取app自带的目录,/data/data/app包名。而关于如何读取项目rawfile目录下的文件,官网有介绍如何读取api,但是如何获取路径不清楚,我自己试了一下。(3)不支持调用系统相册。(4)Java图形文件支持shape但不支持selector写法,不方便快速自定义一些UI效果。(5)模拟器不支持横竖屏切换,SDK也没有横竖屏切换相关的api??(6)远程模拟器没有声音,等待更新新版本(7)远程模拟器只能启动一个,没有本地模拟器不能通过模拟器进行传感器和分布式开发,等待新版本要被更新。4.开发板相关(1)烧录开发板时经常会出现开机烧录的现象。给华为提供了文档(二)只能支持多进程单线程,不支持信号量5、官网手动纠错(一),错误案例连接地址https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ui-js-fa-developing-0000000000500572这个循环遍历数据的功能是开发中最常用的功能。其实这里是错误的。误导我好久了。幸运的是,终于在官网api手册中,发现目前官网已经修复(二),错误案例链接地址https://developer.harmonyos.com/cn/docs/documentation/doc-guides/wearable-adding-module-0000001053581601目前官网已修复更多信息请访问:Harmonyos.51cto.com,与华为官方合作搭建的鸿蒙技术社区
