Android 中 java.lang.IllegalArgumentException: pointerIndex out of range 异常的处理方法
来源:互联网 发布:拜占庭知乎 编辑:程序博客网 时间:2024/06/07 18:25
java.lang.IllegalArgumentException: pointerIndex out of rangeat android.view.MotionEvent.nativeGetAxisValue(Native Method)at android.view.MotionEvent.getX(MotionEvent.java:2189)at android.support.v4.view.MotionEventCompatEclair.getX(MotionEventCompatEclair.java:32)at android.support.v4.view.MotionEventCompat$EclairMotionEventVersionImpl.getX(MotionEventCompat.java:86)at android.support.v4.view.MotionEventCompat.getX(MotionEventCompat.java:184)at android.support.v4.view.ViewPager.onTouchEvent(ViewPager.java:1462)at android.view.View.dispatchTouchEvent(View.java:8149)at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2416)at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2140)at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2422)at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2155)at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2422)at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2155)at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2422)at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2155)at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2422)at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2155)at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2422)at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2155)at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2422)at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2155)at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2295)at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1622)at android.app.Activity.dispatchTouchEvent(Activity.java:2565)at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2243)at android.view.View.dispatchPointerEvent(View.java:8357)at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4778)at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4644)at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4202)at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4256)at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4225)at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4336)at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4233)at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4393)at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4202)at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4256)at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4225)at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4233)at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4202)at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:6569)at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:6486)at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:6457)at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:6422)at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:6649)at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:185)at android.os.MessageQueue.nativePollOnce(Native Method)at android.os.MessageQueue.next(MessageQueue.java:138)at android.os.Looper.loop(Looper.java:131)at android.app.ActivityThread.main(ActivityThread.java:5602)at java.lang.reflect.Method.invokeNative(Native Method)at java.lang.reflect.Method.invoke(Method.java:515)at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)at dalvik.system.NativeStart.main(Native Method)经调查,发现这是 Android 的 ViewPager 的一个 bug,偶尔会在用户执行多点触控操作时发生。直到至少 Android 4.4,该问题依然存在。
解决方案也很简单,覆写 ViewPager 的 onTouchEvent 与 onInterceptTouchEvent 方法,catch 该异常即可,如下所示:
@Override public boolean onTouchEvent(MotionEvent me) { try { return super.onTouchEvent(me); } catch (IllegalArgumentException ex) { ex.printStackTrace(); } return false; }
0 0
- Android 中 java.lang.IllegalArgumentException: pointerIndex out of range 异常的处理方法
- Android 中 java.lang.IllegalArgumentException: pointerIndex out of range 异常的处理方法
- java.lang.IllegalArgumentException: pointerIndex out of range
- java.lang.IllegalArgumentException: pointerIndex out of range
- java.lang.IllegalArgumentException: pointerIndex out of range
- java.lang.IllegalArgumentException: pointerIndex out of range
- java.lang.IllegalArgumentException: pointerIndex out of range
- java.lang.IllegalArgumentException: pointerIndex out of range
- java.lang.IllegalArgumentException pointerIndex out of range
- java.lang.IllegalArgumentException: pointerIndex out of range
- Android java.lang.IllegalArgumentException: pointerIndex out of range
- 解决java.lang.IllegalArgumentException: pointerIndex out of range的错误
- 解决java.lang.IllegalArgumentException: pointerIndex out of range的错误
- Android 处理图片放大缩小时报错java.lang.IllegalArgumentException: pointerIndex out of range pointerIndex=-1 ...
- Android photoview报错java.lang.IllegalArgumentException: pointerIndex out of range pointerIndex=-1
- java.lang.IllegalArgumentException: pointerIndex out of range两种解决办法
- 图片缩放时java.lang.IllegalArgumentException: pointerIndex out of range
- 使用PohtoView出现java.lang.IllegalArgumentException: pointerIndex out of range
- 第三章第43题
- PostThreadMessage的用法
- Tomcat 7在Ubuntu14.04下默认安装路径
- LINUX查看硬件信息[转]
- BC#41 hdu 5228 5229
- Android 中 java.lang.IllegalArgumentException: pointerIndex out of range 异常的处理方法
- java基础——String类
- NOJ 2015年陕西省程序设计竞赛网络预赛(正式赛)(约翰·亨利-dp)
- QTabelWidget 清空行的注意事项
- 《unix网络编程》中源码使用方法
- UIAlertController
- Linux 命令学习
- Linux系统启动详解
- 手势密码