[Android] 'WebView-- Caught a crash, signum=11'的解决

碰到一个奇怪的问题:
WebView在显示本地的一个h5页面时,在Mi 2S可显示,页面上同样属性的按钮有两个可点击,但第三个按钮点击导致Activity必定出现崩溃。崩溃无详细日志,只有如下两句线索:

// W/crash_handler(19125): Caught a crash, signum=11
// 14594-14594/com.eln.base E/webcore: Report WebCore crash to the ErrorReportUtils at:Wed Oct 28 18:44:51 格林尼治标准时间+0800 2015 //blog from sodino.com

该页面在其它手机包括小米的其它系列手机都正常,只出现在Mi 2S。

H5开发人员跟进后发现崩溃点是在h5界面的渲染阶段发生崩溃;无进一步解决办法。
去吃饭时走在路上考虑到Android上和渲染有关的是硬件加速了;
回来后检查代码发现整个app在AndroidManifest.xml中的application标签处全局开启硬件加速,
所以将其硬件加速开关设置关闭后,android:hardwareAccelerated="false",发现WebView正常。

后续为进一步减少代码改动所引起的影响范围,规避此bug的解决方案设定为:
1. 判定为Mi 2系列手机时
2. 对WebView的界面关闭硬件加速


// if ("MI 2SC".equals(deviceName)) {
if (deviceName!= null && deviceName.toLowerCase().startsWith("mi 2")) {
mWebView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
}

附:[Android官方Hardware Acceleration在不同界面的控制级别说明](
http://developer.android.com/intl/zh-cn/guide/topics/graphics/hardware-accel.html)

hardware.acceleration.controll.level

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值