t***@126.com
t***@126.com
  • 发布:2018-01-25 17:30
  • 更新:2018-02-06 17:18
  • 阅读:2192

双指在HBuilder安卓APP页面上快速同时滑动,会导致整个页面卡死

分类:HBuilder

!vivo X9下双指滑动APP卡死详细问题描述
对于HBuilder制作的安卓APP,无论是真机调试、云上打包还是离线打包,只要在打开后的APP的任何一个页面,用双指同时快速地滑动界面(可以从中间朝两边划,也可以随意乱划),频繁滑动几秒钟后,APP会出现卡死现象,除了安卓机械按钮可以响应以外,不能响应任何手势事件。

重现步骤
[步骤]:

  1. 新建一个hello mui app。
  2. 用安卓真机调试打开该app。
  3. 用双指同时快速地滑动界面。

[结果]
频繁重复执行操作3几秒钟后,app出现卡死现象,不能再接收任何手势事件,只能响应机械按钮的退出和最小化操作。

[期望]
期望app没有卡死现象。

运行环境
[系统版本]
最新的HB8.9.1版本(以前的版本也应该有这个问题)

附带说明
经过调试,发现该问题和mui.js没有关系,这应该是和HB的安卓框架代码有关,因为没有加载mui.js的HB安卓app也一样会卡死。
我上传的日志,是用Android Studio打的一个debug模式的离线安装的执行时的控制台日志,可以只看日志的尾部,当APP卡死时,报的是如下这段日志(此后任何手势事件都不再触发日志):
W/System.err: at io.dcloud.common.adapter.util.MessageHandler$1.handleMessage(MessageHandler.java:23)
W/System.err: at android.os.Handler.dispatchMessage(Handler.java:105)
W/System.err: at android.os.Looper.loop(Looper.java:156)
W/System.err: at android.app.ActivityThread.main(ActivityThread.java:6577)
W/System.err: at java.lang.reflect.Method.invoke(Native Method)
W/System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:941)
W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:831)
I/shutao1: showWebview == time1516872906721

出错视频演示地址:
http://www.ywbolg.com/video/MUIBUG.MP4

联系方式
[QQ]:122690059

2018-01-25 17:30 负责人:无 分享
已邀请:
DCloud_App_Array

DCloud_App_Array

此问题已优化,可使用alpha版提交云端打包体验。
正式版会尽快更新发布。

  • t***@126.com (作者)

    好的,十分感谢,辛苦了

    2018-02-01 09:22

DCloud_heavensoft

DCloud_heavensoft

什么设备?我试了几款手机,拖各种应用,不管有没有mui,没有遇到问题啊。

  • t***@126.com (作者)

    我们这边几款手机都出问题了,最容易出问题的机器是低端机,比如华为荣耀6A、红米4X。这个现象在用真机调试时最容易触发,操作的时候,用双指同时放到界面上,然后快速从中间向两边滑动,多滑动几次就能看到卡死现象。

    2018-01-26 10:04

  • t***@126.com (作者)

    我们特地录了一段出错的视频,是用vivo X9操作的:http://www.ywbolg.com/video/MUIBUG.MP4

    2018-01-26 10:25

  • 4***@qq.com

    同样的问题,百分百重现

    http://ask.dcloud.net.cn/question/51432?item_id=58582&rf=false

    2018-01-26 14:13

  • DCloud_heavensoft

    回复 t***@126.com:收到,我们排查下,暂时还未重现。你打包后还会出现这个问题吗?非mui项目会出现吗?

    2018-01-26 15:18

  • t***@126.com (作者)

    回复 DCloud_heavensoft:谢谢关注。云上打包、离线打包,都会有这个问题,不过离线打包出现这个问题的概率较低,真机调试则最为严重。如果项目中不引入mui.js,也是一样会出现这个现象。

    2018-01-29 10:43

  • t***@126.com (作者)

    回复 DCloud_heavensoft:我仔细调试过mui.js,我发现这个问题应该和mui.js没有任何关系,当我开始进行双指滑动时,一开始mui.js是会接收到drag事件的,但是频繁滑动了一会以后,mui.js就再也接收不到任何手势事件了。这时,在js里面的setTimeout()和setInterval()方法还是可以执行的,我利用setTimeout()方法执行过webview的reload方法和window.href.reload,结果都是刷新后还是不能接收任何手势事件。所以我认为这可能就是HB安卓框架在webview方面有代码bug造成的。

    2018-01-29 10:50

  • DCloud_heavensoft

    回复 t***@126.com:真机运行因为打日志和adb通信,是有一定概率阻塞js的。云打包打不能debug的正式版,应该没有阻塞问题

    2018-01-29 15:38

  • t***@126.com (作者)

    回复 DCloud_heavensoft:但是我们用云打包试过的,离线打包也试了,这个问题依然存在。至于您说的“因为打日志和adb通信,是有一定概率阻塞js的”,我觉得这个不是js被阻塞造成,因为我的setInterval是可以跑的,如果js阻塞了,setInterval是不能运行的。所以这个现象的原因暂时还没有定性,我认为HB的安卓框架在webview这一块可能是存在什么问题导致了这个卡死现象。

    2018-01-30 16:04

1***@qq.com

1***@qq.com - fa

卡死的问题没有彻底解决,希望官方能提供规避方案。

  • DCloud_heavensoft

    什么情况下还有?

    2018-02-07 18:44

  • 1***@qq.com

    网络时断时续的情况下,可能会卡死。可以彻底解决这个问题吗?我们很被动

    2018-02-08 11:30

该问题目前已经被锁定, 无法添加新回复