Android Webview 中输入框有自动 focus 行为,应用立即就崩了

2018-12-28 14:36:09 +08:00
 davin

业务需求

在 Android Webview 中的一个表单里,给输入框后面添加了个清除按钮,一旦点击此按钮,就清空输入框,并自动 focus 到该输入框上,顺带禁用掉表单中的提交按钮。大致 js 代码如下(页面引用了 zepto.js ):

$(".btn-clear").on("tap", function(e){
    e.isDefaultPrevented();
    $(this).hide().prev("input").val("");
    $(this).prev("input").trigger("focus"); //就是这行导致应用 crash 了
    $(".btn-common").prop("disabled", true);
});

出问题的设备

设备名称:魅族 MX3
系统版本:Android 4.4.4

问题描述

在 Webview 中打开此页面,会有个自动 focus 到输入框的行为(不是上面那段代码,是其他的)。之前发现 Webview 中一旦跳转至此页面,应用就会 crash 退出,把那段代码去掉后,应用就恢复了正常。但点击输入框后面的清除按钮,应用又 crash 了。此问题出现在真实设备,但在 Testin 云测上找了同型号设备(版本号略低,为 Android 4.2.1 )没有复现。

应用日志

后面请 Android 开发同事帮忙抓取了调试的日志,大致内容包含有以下:

12-27 18:23:00.190 16345-16345/com.******.sample:remoteWeb A/libc: Fatal signal 6 (SIGABRT) at 0x00003fd9 (code=-6), thread 16345 (ample:remoteWeb)
12-27 18:23:00.915 2592-2620/? E/InputDispatcher: channel '42995810 com.******.sample/com.*****.***.**.****WebViewActivity (server)' ~ Channel is unrecoverably broken and will be disposed!

另外,移动端浏览器也没出现这样的问题,由于本人非 Android 开发出身,请 V2 大佬帮忙给分析分析,会是什么情况导致的应用 crash ?

9759 次点击
所在节点    Android
11 条回复
zwh2698
2018-12-28 15:49:44 +08:00
你没有怀疑过是魅族自己的问题?魅族能活着真他妈的神奇
chenyu8674
2018-12-28 15:55:29 +08:00
九成是魅族的问题
之前测试时发现有款魅蓝连 OnScrollListener 都不调,从此一生黑
davin
2018-12-28 17:12:54 +08:00
我也是恨的不得了,之前这个魅族充电的时候还突发异响,搞得整个部门都听见了。不知道魅族 Android 4.0 的设备市场占比有多少,想忽略掉,唉!
yrom
2018-12-28 17:17:59 +08:00
你这抓的日志没用,只是说 app 挂了,得往前看才知道原因
66beta
2018-12-28 17:18:30 +08:00
这么巧,才发了个帖子吐槽闹钟 bug
魅族系统定制多?拜托基础功能先保障好吧,一加都不会出这种低级 bug

SEO
魅族 系统 bug 多
魅族 不要买
Flyme bug 多
魅族 Flyme 不建议购买
liuzhedash
2018-12-28 17:26:34 +08:00
mx3 4.4.4 太老的机型了,看现象应该是 webview 的问题。
4L 说的对,日志没抓对地方,重点应该是应用内 webview 产生的日志。其实还有个规避思路是应用内置一个固定的 webview,比如腾讯的 X5 (如果不怕 V2EX 的大神喷你的话)
davin
2018-12-28 17:38:54 +08:00
有空我就再去让同事抓下 webview 日志吧,其实 X5 也私下想过,不过包的体积不就增加了嘛,领导那估计也通不过。
mxalbert1996
2018-12-28 23:11:50 +08:00
@yrom 这个明显是 native code 崩了,往前看有什么用
davin
2018-12-29 10:42:45 +08:00
昨天试了另外同型号的真机,没有复现,节后再试试吧,测试同事说要把机器恢复下出厂设置。
yrom
2018-12-29 10:43:15 +08:00
@mxalbert1996 native 崩了也得有个说头吧,难道这个地方崩了就不管了
stuazt
2019-01-11 18:59:43 +08:00
AndroidBug5497Workaround,可以搜一下这个 bug,Android 陈年老 bug 了,我看你这个跟这个是有关系的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/521887

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX