Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

NullPointerException while nothing is null

Ok, this is very frustrating.

My code is following:

accept.setBackgroundResource(R.drawable.circle_navigator_accept_checked);
ViewPager vp = (ViewPager)activity.findViewById(R.id.viewpager);
ViewPagerAdapter adapter = (ViewPagerAdapter)vp.getAdapter();

MyAdapter ma = (MyAdapter)(adapter.finalExamTypeList.getAdapter());

int selected = ma.getSelectedItem();
selected -= adapter.finalExamTypeList.getFirstVisiblePosition();

I'm getting NullPointerException in this line:

MyAdapter ma = (MyAdapter)(adapter.finalExamTypeList.getAdapter());

Seems like pretty easy to find out - either adapter or adapter.finalExamTypeList should be null.

But when I checked it in debug mode, nothing in this line is really null. Everything is initialized and it's initialized properly. Also this adapter.finalExamTypeList.getAdapter() returns properly MyAdapter object.

So I was a bit worried, but anyway, I tried to make those conditions here:

accept.setBackgroundResource(R.drawable.circle_navigator_accept_checked);
ViewPager vp = (ViewPager)activity.findViewById(R.id.viewpager);
ViewPagerAdapter adapter = (ViewPagerAdapter)vp.getAdapter();

if(adapter != null) {
    if(adapter.finalExamTypeList != null) {
        if(adapter.finalExamTypeList.getAdapter() != null) {
            MyAdapter ma = (MyAdapter)(adapter.finalExamTypeList.getAdapter());

            int selected = ma.getSelectedItem();
            selected -= adapter.finalExamTypeList.getFirstVisiblePosition();
        }
    }
}

But still, NullPointerException in the same place.

Log:

06-23 09:25:28.260: W/dalvikvm(1967): JNI WARNING: JNI method called with exception raised
06-23 09:25:28.260: W/dalvikvm(1967):              in Landroid/os/Process;.setArgV0 (Ljava/lang/String;)V (GetStringCritical)
06-23 09:25:28.260: W/dalvikvm(1967): Pending exception is:
06-23 09:25:28.260: I/dalvikvm(1967): Ljava/lang/reflect/InvocationTargetException;:
06-23 09:25:28.260: I/dalvikvm(1967):   at java.lang.reflect.Method.invokeNative(Native Method)
06-23 09:25:28.260: I/dalvikvm(1967):   at java.lang.reflect.Method.invoke(Method.java:507)
06-23 09:25:28.260: I/dalvikvm(1967):   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
06-23 09:25:28.260: I/dalvikvm(1967):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
06-23 09:25:28.260: I/dalvikvm(1967):   at dalvik.system.NativeStart.main(Native Method)
06-23 09:25:28.260: I/dalvikvm(1967): Caused by:
06-23 09:25:28.260: I/dalvikvm(1967): Ljava/lang/NullPointerException;:
06-23 09:25:28.260: I/dalvikvm(1967):   at pl.lodz.uni.myproject.CircleNavigator$1.onClick(CircleNavigator.java:99)
06-23 09:25:28.260: I/dalvikvm(1967):   at android.view.View.performClick(View.java:2485)
06-23 09:25:28.260: I/dalvikvm(1967):   at android.view.View$PerformClick.run(View.java:9080)
06-23 09:25:28.260: I/dalvikvm(1967):   at android.os.Handler.handleCallback(Handler.java:587)
06-23 09:25:28.260: I/dalvikvm(1967):   at android.os.Handler.dispatchMessage(Handler.java:92)
06-23 09:25:28.260: I/dalvikvm(1967):   at android.os.Looper.loop(Looper.java:130)
06-23 09:25:28.260: I/dalvikvm(1967):   at android.app.ActivityThread.main(ActivityThread.java:3683)
06-23 09:25:28.260: I/dalvikvm(1967):   at java.lang.reflect.Method.invokeNative(Native Method)
06-23 09:25:28.260: I/dalvikvm(1967):   at java.lang.reflect.Method.invoke(Method.java:507)
06-23 09:25:28.260: I/dalvikvm(1967):   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
06-23 09:25:28.260: I/dalvikvm(1967):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
06-23 09:25:28.260: I/dalvikvm(1967):   at dalvik.system.NativeStart.main(Native Method)
06-23 09:25:28.260: I/dalvikvm(1967): "main" prio=5 tid=1 NATIVE
06-23 09:25:28.260: I/dalvikvm(1967):   | group="main" sCount=0 dsCount=0 obj=0xb5f1bc38 self=0x9240e48
06-23 09:25:28.260: I/dalvikvm(1967):   | sysTid=1967 nice=0 sched=0/0 cgrp=[fopen-error:2] handle=-2145907712
06-23 09:25:28.260: I/dalvikvm(1967):   at android.os.Process.setArgV0(Native Method)
06-23 09:25:28.260: I/dalvikvm(1967):   at android.app.ActivityThread.main(ActivityThread.java:3668)
06-23 09:25:28.260: I/dalvikvm(1967):   at java.lang.reflect.Method.invokeNative(Native Method)
06-23 09:25:28.260: I/dalvikvm(1967):   at java.lang.reflect.Method.invoke(Method.java:507)
06-23 09:25:28.260: I/dalvikvm(1967):   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
06-23 09:25:28.260: I/dalvikvm(1967):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
06-23 09:25:28.260: I/dalvikvm(1967):   at dalvik.system.NativeStart.main(Native Method)
06-23 09:25:28.260: E/dalvikvm(1967): VM aborting

Anyone has any idea what's going on here?

like image 227
Piotr Chojnacki Avatar asked Mar 06 '26 10:03

Piotr Chojnacki


2 Answers

But when I checked it in debug mode, nothing in this line is really null.

There are a couple of possibilities you haven't considered.

  • It could be a race condition that you don't observe in the debugger because it doesn't occur when you single-step the code.

  • There could be a bug in the debugger.

like image 94
Stephen C Avatar answered Mar 07 '26 23:03

Stephen C


I managed to solve the problem. It appears it was some kind of a bug or something. After I restarted eclipse a few times, it told me to update my ADT, so I did and it solved this problem, no NullPointerException. Magic.

like image 26
Piotr Chojnacki Avatar answered Mar 07 '26 22:03

Piotr Chojnacki



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!