修复Crash原因:pointerIndex out of range

自从项目接手以来,腾讯Bugly一直也是上传过来各种各样的Bug。这不,如下图,又是传过来一个令人很奇特的Bug。

修复Crash原因:pointerIndex out of range_第1张图片
 打印桟

从打印桟来看,其实错误很简单,但又是很莫名其妙,ViewPager在做多点触控的时候,操作自己所绘制的图形时发生异常。根据项目中使用的ViewPager控件来看,出错的应该是在针对图片做多点触摸时发生的。

修复Crash原因:pointerIndex out of range_第2张图片
出错的设备统计图全是Samsung

找到问题原因之后那就简单多了,上网百度,查找解决办法,网上的解决办法无非两种,一种是根据特定的Android 设备Rom,去修改源码然后去重新编译系统。这里我们直接Pass这个办法,我们无法去修改用户的系统,也无法去更改Samsung的Rom。此时我们还有另一种方法,自定义ViewPager在onInterceptTouchEvent方法和onTouchEvent方法中我们去捕获类似的bug。

代码如下:

@Override

public booleanonInterceptTouchEvent(MotionEvent ev) {

try{

return super.onInterceptTouchEvent(ev);

}catch(IllegalArgumentException ex) {

ex.printStackTrace();

}

return false;

}

@Override

public booleanonTouchEvent(MotionEvent ev) {

try{

return super.onTouchEvent(ev);

}catch(IllegalArgumentException ex) {

ex.printStackTrace();

}

return false;

}

Ok,搞定。

你可能感兴趣的:(修复Crash原因:pointerIndex out of range)