Photoview: java.lang.IllegalArgumentException: pointerIndex out of range

Created on 12 Nov 2015  路  5Comments  路  Source: Baseflow/PhotoView

That's what's happening if I am zooming out a lot and then letting go one finger. Samsung Galaxy S5, PhotoView 1.2.4

11-12 11:05:14.998 18746-18746/com.asdf.app E/AndroidRuntime: FATAL EXCEPTION: main
11-12 11:05:14.998 18746-18746/com.asdf.app E/AndroidRuntime: Process: com.asdf.app, PID: 18746
11-12 11:05:14.998 18746-18746/com.asdf.app E/AndroidRuntime: java.lang.IllegalArgumentException: pointerIndex out of range
11-12 11:05:14.998 18746-18746/com.asdf.app E/AndroidRuntime:     at android.view.MotionEvent.nativeGetAxisValue(Native Method)
11-12 11:05:14.998 18746-18746/com.asdf.app E/AndroidRuntime:     at android.view.MotionEvent.getX(MotionEvent.java:2106)
11-12 11:05:14.998 18746-18746/com.asdf.app E/AndroidRuntime:     at android.support.v4.view.MotionEventCompatEclair.getX(MotionEventCompatEclair.java:32)
11-12 11:05:14.998 18746-18746/com.asdf.app E/AndroidRuntime:     at android.support.v4.view.MotionEventCompat$EclairMotionEventVersionImpl.getX(MotionEventCompat.java:110)
11-12 11:05:14.998 18746-18746/com.asdf.app E/AndroidRuntime:     at android.support.v4.view.MotionEventCompat.getX(MotionEventCompat.java:462)
11-12 11:05:14.998 18746-18746/com.asdf.app E/AndroidRuntime:     at android.support.v4.view.ViewPager.onInterceptTouchEvent(ViewPager.java:1920)
11-12 11:05:14.998 18746-18746/com.asdf.app E/AndroidRuntime:     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2284)
11-12 11:05:14.998 18746-18746/com.asdf.app E/AndroidRuntime:     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2683)
11-12 11:05:14.998 18746-18746/com.asdf.app E/AndroidRuntime:     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2399)
11-12 11:05:14.998 18746-18746/com.asdf.app E/AndroidRuntime:     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2683)
11-12 11:05:14.998 18746-18746/com.asdf.app E/AndroidRuntime:     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2399)
11-12 11:05:14.998 18746-18746/com.asdf.app E/AndroidRuntime:     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2683)
11-12 11:05:14.998 18746-18746/com.asdf.app E/AndroidRuntime:     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2399)
11-12 11:05:14.998 18746-18746/com.asdf.app E/AndroidRuntime:     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2683)
11-12 11:05:14.998 18746-18746/com.asdf.app E/AndroidRuntime:     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2399)
11-12 11:05:14.998 18746-18746/com.asdf.app E/AndroidRuntime:     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2683)
11-12 11:05:14.998 18746-18746/com.asdf.app E/AndroidRuntime:     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2399)
11-12 11:05:14.998 18746-18746/com.asdf.app E/AndroidRuntime:     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2683)
11-12 11:05:14.998 18746-18746/com.asdf.app E/AndroidRuntime:     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2399)
11-12 11:05:14.998 18746-18746/com.asdf.app E/AndroidRuntime:     at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2552)
11-12 11:05:14.998 18746-18746/com.asdf.app E/AndroidRuntime:     at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1767)
11-12 11:05:14.998 18746-18746/com.asdf.app E/AndroidRuntime:     at android.app.Activity.dispatchTouchEvent(Activity.java:2840)
11-12 11:05:14.998 18746-18746/com.asdf.app E/AndroidRuntime:     at android.support.v7.internal.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:59)
11-12 11:05:14.998 18746-18746/com.asdf.app E/AndroidRuntime:     at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2513)
11-12 11:05:14.998 18746-18746/com.asdf.app E/AndroidRuntime:     at android.view.View.dispatchPointerEvent(View.java:9124)
11-12 11:05:14.998 18746-18746/com.asdf.app E/AndroidRuntime:     at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4632)
11-12 11:05:14.998 18746-18746/com.asdf.app E/AndroidRuntime:     at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4470)
11-12 11:05:14.998 18746-18746/com.asdf.app E/AndroidRuntime:     at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4020)
11-12 11:05:14.998 18746-18746/com.asdf.app E/AndroidRuntime:     at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4073)
11-12 11:05:14.998 18746-18746/com.asdf.app E/AndroidRuntime:     at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4039)
11-12 11:05:14.998 18746-18746/com.asdf.app E/AndroidRuntime:     at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4153)
11-12 11:05:14.998 18746-18746/com.asdf.app E/AndroidRuntime:     at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4047)
11-12 11:05:14.998 18746-18746/com.asdf.app E/AndroidRuntime:     at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4210)
11-12 11:05:14.998 18746-18746/com.asdf.app E/AndroidRuntime:     at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4020)
11-12 11:05:14.998 18746-18746/com.asdf.app E/AndroidRuntime:     at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4073)
11-12 11:05:14.998 18746-18746/com.asdf.app E/AndroidRuntime:     at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4039)
11-12 11:05:14.998 18746-18746/com.asdf.app E/AndroidRuntime:     at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4047)
11-12 11:05:14.998 18746-18746/com.asdf.app E/AndroidRuntime:     at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4020)
11-12 11:05:14.998 18746-18746/com.asdf.app E/AndroidRuntime:     at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:6480)
11-12 11:05:14.998 18746-18746/com.asdf.app E/AndroidRuntime:     at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:6379)
11-12 11:05:14.998 18746-18746/com.asdf.app E/AndroidRuntime:     at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:6350)
11-12 11:05:14.998 18746-18746/com.asdf.app E/AndroidRuntime:     at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:6570)
11-12 11:05:14.998 18746-18746/com.asdf.app E/AndroidRuntime:     at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:185)
11-12 11:05:14.998 18746-18746/com.asdf.app E/AndroidRuntime:     at android.view.InputEventReceiver.nativeConsumeBatchedInputEvents(Native Method)
11-12 11:05:14.998 18746-18746/com.asdf.app E/AndroidRuntime:     at android.view.InputEventReceiver.consumeBatchedInputEvents(InputEventReceiver.java:176)
11-12 11:05:14.998 18746-18746/com.asdf.app E/AndroidRuntime:     at android.view.ViewRootImpl.doConsumeBatchedInput(ViewRootImpl.java:6541)
11-12 11:05:14.998 18746-18746/com.asdf.app E/AndroidRuntime:     at android.view.ViewRootImpl$ConsumeBatchedInputRunnable.run(ViewRootImpl.java:6593)
11-12 11:05:14.998 18746-18746/com.asdf.app E/AndroidRuntime:     at android.view.Choreographer$CallbackRecord.run(Choreographer.java:777)
11-12 11:05:14.998 18746-18746/com.asdf.app E/AndroidRuntime:     at android.view.Choreographer.doCallbacks(Choreographer.java:590)
11-12 11:05:14.998 18746-18746/com.asdf.app E/AndroidRuntime:     at android.view.Choreographer.doFrame(Choreographer.java:558)
11-12 11:05:14.998 18746-18746/com.asdf.app E/AndroidRuntime:   at android.view.Choreographer$FrameDisplayEven

Most helpful comment

Are you overriding both onTouchEvent() && onInterceptTouchEvent() in your custom viewpager like so:

 @Override
    public boolean onTouchEvent(MotionEvent ev) {
        try {
            return super.onTouchEvent(ev);
        } catch (IllegalArgumentException ex) {
            ex.printStackTrace();
        }
        return false;
    }

    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev) {
        try {
            return super.onInterceptTouchEvent(ev);
        } catch (IllegalArgumentException ex) {
            ex.printStackTrace();
        }
        return false;
    }

All 5 comments

me too

same issue again... +1 can u pleas fix it u? are there any patch release?
Im using compile 'com.github.chrisbanes.photoview:library:1.2.4' this issue is on with Nexus 6P Android 6.0. I think it has nothing to do with device specific issue.

Are you overriding both onTouchEvent() && onInterceptTouchEvent() in your custom viewpager like so:

 @Override
    public boolean onTouchEvent(MotionEvent ev) {
        try {
            return super.onTouchEvent(ev);
        } catch (IllegalArgumentException ex) {
            ex.printStackTrace();
        }
        return false;
    }

    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev) {
        try {
            return super.onInterceptTouchEvent(ev);
        } catch (IllegalArgumentException ex) {
            ex.printStackTrace();
        }
        return false;
    }

Yep, see the README

Was this page helpful?
0 / 5 - 0 ratings

Related issues

pfives picture pfives  路  15Comments

nithinpmolethu picture nithinpmolethu  路  11Comments

kangsLee picture kangsLee  路  6Comments

sunshaobei picture sunshaobei  路  5Comments

FaultException picture FaultException  路  9Comments