-2

I don't know what to do, please help

'E/AndroidRuntime: FATAL EXCEPTION: main Process: com.is2all.so2al_ijaba, PID: 13051 java.lang.RuntimeException: Unable to resume activity {com.is2all.so2al_ijaba/com.is2all.so2al_ijaba.windows_asila}: java.lang.NullPointerException: Attempt to invoke interface method 'int java.util.List.size()' on a null object reference at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3103) at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3134) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2481) at android.app.ActivityThread.-wrap11(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5417) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) Caused by: java.lang.NullPointerException: Attempt to invoke interface method 'int java.util.List.size()' on a null object reference at com.is2all.so2al_ijaba.windows_asila.table(windows_asila.java:204) at com.is2all.so2al_ijaba.windows_asila.onResume(windows_asila.java:439) at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1258) at android.app.Activity.performResume(Activity.java:6312) at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3092)'

the code :

public void table() {

        handler.removeCallbacks(run);
        count=30 ;
        rnd = rand.nextInt(mDataList.size());
        id = mDataList.get(rnd).ID ;
        btn.setText(mDataList.get(rnd).Question);
        btn2.setText(mDataList.get(rnd).Answer_1);
        btn3.setText(mDataList.get(rnd).Answer_2);
        btn4.setText(mDataList.get(rnd).Answer_3);
        btn5.setText(mDataList.get(rnd).Answer_4);
        count_b = mDataList.get(rnd).ID_answer;
        timer();
        if (mInterstitialAd.isLoaded() & rnd == 2 || rnd == 4 || rnd == 8 || rnd ==16 || rnd == 32 || rnd == 64 || rnd == 128 ) {
            handler.removeCallbacks(run);
            mInterstitialAd.show();
        }
}

    @Override
    protected void onResume() {
        super.onResume();
        table();

        SharedPreferences savechange =  this.getSharedPreferences
            ("savechange", Context.MODE_PRIVATE);
        int Point = savechange.getInt("Point",point);
        this.point = Point;
        btn7.setText("+نقط : "+point);
    }
tzrm
  • 513
  • 1
  • 8
  • 14
abdo
  • 1
  • 1
  • 2

2 Answers2

0

It looks like your "mDataList" is null, so when you call rnd = rand.nextInt(mDataList.size());

it is giving you the error.

scottymack
  • 78
  • 1
  • 9
0

Well, the problem is stated in your log . Your mDataList is null when your activity returns from background and resumes (as it seems) and you attempt to call mDataList.size() on a null object reference

You can always add check to prevent your app from crashing

if(mDataList != null) {
   rnd = rand.nextInt(mDataList.size());
} 

Maybe you initialize mDataList in onCreate and when your app returns from background it just goes directly to onResume or maybe you don't initialize it at all

Rainmaker
  • 10,294
  • 9
  • 54
  • 89