Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

java.lang.NullPointerException: Attempt to invoke interface method 'boolean android.view.View$OnTouchListener.onTouch(android.view.View, android.view.MotionEvent)' on a null object reference #45

Open
jaredsburrows opened this issue Feb 24, 2016 · 5 comments

Comments

@jaredsburrows
Copy link

02-23 17:54:32.444  1926  1926 E AndroidRuntime: FATAL EXCEPTION: main
02-23 17:54:32.444  1926  1926 E AndroidRuntime: java.lang.NullPointerException: Attempt to invoke interface method 'boolean android.view.View$OnTouchListener.onTouch(android.view.View, android.view.MotionEvent)' on a null object reference
02-23 17:54:32.444  1926  1926 E AndroidRuntime:    at com.wdullaer.swipeactionadapter.SwipeViewGroup.onInterceptTouchEvent(SwipeViewGroup.java:174)
02-23 17:54:32.444  1926  1926 E AndroidRuntime:    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2108)
02-23 17:54:32.444  1926  1926 E AndroidRuntime:    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553)
02-23 17:54:32.444  1926  1926 E AndroidRuntime:    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2197)
02-23 17:54:32.444  1926  1926 E AndroidRuntime:    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553)
02-23 17:54:32.444  1926  1926 E AndroidRuntime:    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2197)
02-23 17:54:32.444  1926  1926 E AndroidRuntime:    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553)
02-23 17:54:32.444  1926  1926 E AndroidRuntime:    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2197)
02-23 17:54:32.444  1926  1926 E AndroidRuntime:    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553)
02-23 17:54:32.444  1926  1926 E AndroidRuntime:    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2197)
02-23 17:54:32.444  1926  1926 E AndroidRuntime:    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553)
02-23 17:54:32.444  1926  1926 E AndroidRuntime:    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2197)
02-23 17:54:32.444  1926  1926 E AndroidRuntime:    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553)
02-23 17:54:32.444  1926  1926 E AndroidRuntime:    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2197)
02-23 17:54:32.444  1926  1926 E AndroidRuntime:    at com.android.internal.policy.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2403)
02-23 17:54:32.444  1926  1926 E AndroidRuntime:    at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1737)
02-23 17:54:32.444  1926  1926 E AndroidRuntime:    at android.app.Activity.dispatchTouchEvent(Activity.java:2771)
02-23 17:54:32.444  1926  1926 E AndroidRuntime:    at com.android.internal.policy.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2364)
02-23 17:54:32.444  1926  1926 E AndroidRuntime:    at android.view.View.dispatchPointerEvent(View.java:9520)
02-23 17:54:32.444  1926  1926 E AndroidRuntime:    at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4230)
02-23 17:54:32.444  1926  1926 E AndroidRuntime:    at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4096)
02-23 17:54:32.444  1926  1926 E AndroidRuntime:    at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3642)
02-23 17:54:32.444  1926  1926 E AndroidRuntime:    at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3695)
02-23 17:54:32.444  1926  1926 E AndroidRuntime:    at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3661)
02-23 17:54:32.444  1926  1926 E AndroidRuntime:    at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3787)
02-23 17:54:32.444  1926  1926 E AndroidRuntime:    at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3669)
02-23 17:54:32.444  1926  1926 E AndroidRuntime:    at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3844)
02-23 17:54:32.444  1926  1926 E AndroidRuntime:    at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3642)
02-23 17:54:32.444  1926  1926 E AndroidRuntime:    at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3695)
02-23 17:54:32.444  1926  1926 E AndroidRuntime:    at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3661)
02-23 17:54:32.444  1926  1926 E AndroidRuntime:    at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3669)
02-23 17:54:32.444  1926  1926 E AndroidRuntime:    at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3642)
02-23 17:54:32.444  1926  1926 E AndroidRuntime:    at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:5922)
02-23 17:54:32.444  1926  1926 E AndroidRuntime:    at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:5896)
02-23 17:54:32.444  1926  1926 E AndroidRuntime:    at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:5857)
02-23 17:54:32.444  1926  1926 E AndroidRuntime:    at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:6025)
02-23 17:54:32.444  1926  1926 E AndroidRuntime:    at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:185)
02-23 17:54:32.444  1926  1926 E AndroidRuntime:    at android.os.MessageQueue.nativePollOnce(Native Method)
02-23 17:54:32.444  1926  1926 E AndroidRuntime:    at android.os.MessageQueue.next(MessageQueue.java:323)
02-23 17:54:32.444  1926  1926 E AndroidRuntime:    at android.os.Looper.loop(Looper.java:135)
02-23 17:54:32.444  1926  1926 E AndroidRuntime:    at android.app.ActivityThread.main(ActivityThread.java:5417)
02-23 17:54:32.444  1926  1926 E AndroidRuntime:    at java.lang.reflect.Method.invoke(Native Method)
02-23 17:54:32.444  1926  1926 E AndroidRuntime:    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
02-23 17:54:32.444  1926  1926 E AndroidRuntime:    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

@wdullaer
Copy link
Owner

You didn't set a background view?

Without any code, it's more or less impossible for me to help you.

@moshea444
Copy link

moshea444 commented Jun 27, 2016

I'm having the same issue. I pretty much just copy and pasted the example code on the git home screen. This is where the issue happens in the SwipeActionAdapter code:

@Override public boolean onInterceptTouchEvent(MotionEvent ev) { // Start tracking the touch when a child is processing it return super.onInterceptTouchEvent(ev) || swipeTouchListener.onTouch(this, ev); }

Here is my code setting up the adapter:

`mAccountAdapter.addBackground(SwipeDirection.DIRECTION_FAR_LEFT, R.layout.row_account_left)
.addBackground(SwipeDirection.DIRECTION_FAR_RIGHT, R.layout.row_account_right)
.addBackground(SwipeDirection.DIRECTION_NORMAL_LEFT, R.layout.row_account_left)
.addBackground(SwipeDirection.DIRECTION_NORMAL_RIGHT, R.layout.row_account_right)
.addBackground(SwipeDirection.DIRECTION_NEUTRAL, R.layout.row_account_left);

    mAccountAdapter.setSwipeActionListener(new SwipeActionAdapter.SwipeActionListener(){
        @Override
        public boolean hasActions(int position, SwipeDirection direction){
            if(direction.isLeft()) return true; // Change this to false to disable left swipes
            if(direction.isRight()) return true;
            return false;
        }

        @Override
        public boolean shouldDismiss(int position, SwipeDirection direction){
            // Only dismiss an item when swiping normal left
            return direction == SwipeDirection.DIRECTION_NORMAL_LEFT;
        }

        @Override
        public void onSwipe(int[] positionList, SwipeDirection[] directionList){
            for(int i=0;i<positionList.length;i++) {
                SwipeDirection direction = directionList[i];
                int position = positionList[i];
                String dir = "";

                switch (direction) {
                    case DIRECTION_FAR_LEFT:
                        dir = "Far left";
                        break;
                    case DIRECTION_NORMAL_LEFT:
                        dir = "Left";
                        break;
                    case DIRECTION_FAR_RIGHT:
                        dir = "Far right";
                        break;
                    case DIRECTION_NORMAL_RIGHT:
                        AlertDialog.Builder builder = new AlertDialog.Builder(mHomeActivity);
                        builder.setTitle("Test Dialog").setMessage("You swiped right").create().show();
                        dir = "Right";
                        break;
                }
                Toast.makeText(
                        mHomeActivity,
                        dir + " swipe Action triggered on " + mAccountAdapter.getItem(position),
                        Toast.LENGTH_SHORT
                ).show();
                mAccountAdapter.notifyDataSetChanged();
            }
        }
    });`

@wdullaer
Copy link
Owner

Does it also happen if you just run the sample app?
Does it happen on each swipe?
If it doesn't happen with the sample add, could you change the sample app until it does happen?

I can't reproduce this right now, which makes it hard to fix

@Hakens
Copy link

Hakens commented Jan 26, 2020

Same here, any solution?

@trauchhaupt
Copy link

In my case, it is because mDownViewGroup is not set in SwipeActionTouchListener:268 because the cast to SwipeViewGroup does not work (It is of type RelativeLayout).

This was due to overriding SwipeActionAdapter and overriding the getView() method in it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants