文档章节

java.lang.IllegalArgumentException: pointerIndex

今日竹石
 今日竹石
发布于 2014/04/21 13:52
字数 337
阅读 1717
收藏 0

今天遇到一个bug:

java.lang.IllegalArgumentException: pointerIndex out of range
	at android.view.MotionEvent.nativeGetAxisValue(Native Method)
	at android.view.MotionEvent.getX(MotionEvent.java:1981)
	at android.support.v4.view.MotionEventCompatEclair.getX(MotionEventCompatEclair.java:32)
	at android.support.v4.view.MotionEventCompat$EclairMotionEventVersionImpl.getX(MotionEventCompat.java:91)
	at android.support.v4.view.MotionEventCompat.getX(MotionEventCompat.java:219)
	at android.support.v4.view.ViewPager.onTouchEvent(ViewPager.java:1901)
	at cn.xs8.app.activity.news.ui.CustomViewPager.onTouchEvent(CustomViewPager.java:29)
	at android.view.View.dispatchTouchEvent(View.java:7263)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2235)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1932)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2241)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1946)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2241)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1946)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2241)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1946)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2241)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1946)
	at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1977)
	at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1427)
	at android.app.Activity.dispatchTouchEvent(Activity.java:2428)
	at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1925)
	at android.view.View.dispatchPointerEvent(View.java:7443)
	at android.view.ViewRootImpl.deliverPointerEvent(ViewRootImpl.java:3603)
	at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:3531)
	at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:4783)
	at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:4743)
	at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:4895)
	at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:179)
	at android.view.InputEventReceiver.nativeConsumeBatchedInputEvents(Native Method)
	at android.view.InputEventReceiver.consumeBatchedInputEvents(InputEventReceiver.java:171)
	at android.view.ViewRootImpl.doConsumeBatchedInput(ViewRootImpl.java:4863)
	at android.view.ViewRootImpl$ConsumeBatchedInputRunnable.run(ViewRootImpl.java:4917)
	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:776)
	at android.view.Choreographer.doCallbacks(Choreographer.java:579)
	at android.view.Choreographer.doFrame(Choreographer.java:546)
	at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:762)
	at android.os.Handler.handleCallback(Handler.java:800)
	at android.os.Handler.dispatchMessage(Handler.java:100)
	at android.os.Looper.loop(Looper.java:194)
	at android.app.ActivityThread.main(ActivityThread.java:5371)
	at java.lang.reflect.Method.invokeNative(Native Method)
	at java.lang.reflect.Method.invoke(Method.java:525)
	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
	at dalvik.system.NativeStart.main(Native Method)

     在网上很多关于该bug的处理都众说纷纭,我在这里不再详述该bug产生的原因,下面给出一种在4.1的机子上测试通过的方案:

1.让你的view(可能是ScrollView,WebView,MapView等),创建一个子view继承于它们中的某一个;

2.重写onInterceptTouchEvent 和onTouchEvent方法

3.try catch 该两个方法,形如下面:

try{  

    super.onInterceptTouchEvent(MotionEvent ev)  

catch(ILLegalArgumentException ex) {  

}  

    return false;  

  

try{  

    super.onTouchEvent(MotionEvent ev)  

catch(ILLegalArgumentException ex) {  

}  

    return false;  



© 著作权归作者所有

共有 人打赏支持
今日竹石
粉丝 41
博文 227
码字总数 181312
作品 0
朝阳
程序员
私信 提问
java.lang.IllegalArgumentException: pointerIndex

// java.lang.IllegalArgumentException: pointerIndex out of range // at android.view.MotionEvent.nativeGetAxisValue(Native Method) // at android.view.MotionEvent.getY(MotionEvent......

今日竹石
2014/03/26
0
0
IllegalArgumentException: pointerIndex out of rang

解决java.lang.IllegalArgumentException: pointerIndex out of range的错误 在网上很多关于该bug的处理都众说纷纭,我在这里不再详述该bug产生的原因,下面给出一种在4.1的机子上测试通过的...

xunfang
2016/01/29
26
0
android 吐槽一下开源项目PhotoView

项目地址:https://github.com/chrisbanes/photoview 修改demo例子的根布局为ScrollView,如上,跑起程序,使劲儿缩小,多试几次,发现: java.lang.IllegalArgumentException: pointerIndex...

当空皓月
2015/02/05
11.2K
4
Android触控基础:MotionEvent

之前的文章层从Framework层介绍了Android Touch事件即(MotionEvent)的传递机制。本文将详细介绍MotionEvent的一些成员和方法。了解了MotionEvent对开发一些特效如拖动控件或多点缩放控件有很...

JayPark不作死
2014/11/11
0
0
java中mybatis和spring整合

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: java.lang.IllegalArgumentEx......

java_王子
2015/08/04
1K
3

没有更多内容

加载失败,请刷新页面

加载更多

[LintCode] Binary Tree Level Order Traversal(二叉树的层次遍历)

描述 给出一棵二叉树,返回其节点值的层次遍历(逐层从左往右访问) 样例 给一棵二叉树 {3,9,20,#,#,15,7} : 3 / \9 20 / \ 15 7 返回他的分层遍历结果: [ [3], [...

honeymose
12分钟前
1
0
Spring Cloud Config 规范

Spring Cloud Config 规范 首先Spring Cloud 是基于 Spring 来扩展的,Spring 本身就提供当创建一个Bean时可从Environment 中将一些属性值通过@Value的形式注入到业务代码中的能力。那Sprin...

阿里云官方博客
21分钟前
1
0
renderer

renderer Function 单元格绘制处理函数,同drawcell事件。

architect刘源源
32分钟前
5
0
jdk1.8 lambda表达式过滤重复的对象

//操作类public class BizAgentAudit {    private String supplierOrgId;    private int age;    private String name;        public BizAgentAudit() { ...

INSISTQIAO
33分钟前
6
0
DataUtil的日期处理

SimpleDateFormat 是线程不安全的类,一般不要定义为 static 变量,如果定义为static,必须加锁,或者使用 DateUtils 工具类。 解决方法 1、将SimpleDateFormat定义成局部变量。 缺点:每调用...

DoLo-lty
37分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部