V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
davin
V2EX  ›  Android

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

  •  
  •   davin · 2018-12-28 14:36:09 +08:00 · 9464 次点击
    这是一个创建于 2186 天前的主题,其中的信息可能已经有所发展或是发生改变。

    业务需求

    在 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 ?

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

    SEO
    魅族 系统 bug 多
    魅族 不要买
    Flyme bug 多
    魅族 Flyme 不建议购买
    liuzhedash
        6
    liuzhedash  
       2018-12-28 17:26:34 +08:00
    mx3 4.4.4 太老的机型了,看现象应该是 webview 的问题。
    4L 说的对,日志没抓对地方,重点应该是应用内 webview 产生的日志。其实还有个规避思路是应用内置一个固定的 webview,比如腾讯的 X5 (如果不怕 V2EX 的大神喷你的话)
    davin
        7
    davin  
    OP
       2018-12-28 17:38:54 +08:00
    有空我就再去让同事抓下 webview 日志吧,其实 X5 也私下想过,不过包的体积不就增加了嘛,领导那估计也通不过。
    mxalbert1996
        8
    mxalbert1996  
       2018-12-28 23:11:50 +08:00 via Android
    @yrom 这个明显是 native code 崩了,往前看有什么用
    davin
        9
    davin  
    OP
       2018-12-29 10:42:45 +08:00 via iPhone
    昨天试了另外同型号的真机,没有复现,节后再试试吧,测试同事说要把机器恢复下出厂设置。
    yrom
        10
    yrom  
       2018-12-29 10:43:15 +08:00
    @mxalbert1996 native 崩了也得有个说头吧,难道这个地方崩了就不管了
    stuazt
        11
    stuazt  
       2019-01-11 18:59:43 +08:00
    AndroidBug5497Workaround,可以搜一下这个 bug,Android 陈年老 bug 了,我看你这个跟这个是有关系的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5822 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 03:29 · PVG 11:29 · LAX 19:29 · JFK 22:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.