interstitial.show() ad Giving Null pointer crashes in Google play store

31 views Asked by At

line 949 image In Open activity oncreate() I am calling my setAdmob() function to show a launch interstitial ad ,it working fine in my all devices we also tested in all version devices like android 9 10 13, no crashes recorded but when app is live on play store it crashing with error,

I am showing the ad and adding callback inside onadloaded but still it giving the same crash

how can I reproduce and fix it ?

   Exception java.lang.NullPointerException: Attempt to invoke virtual method 'void com.google.android.gms.ads.interstitial.InterstitialAd.show(android.app.Activity)' on a null object reference
  at com.colorsplashphoto.android.activity.OpenActivity$11$3.run (OpenActivity.java:949)
  at android.os.Handler.handleCallback (Handler.java:942)
  at android.os.Handler.dispatchMessage (Handler.java:99)
  at android.os.Looper.loopOnce (Looper.java:240)
  at android.os.Looper.loop (Looper.java:351)
  at android.app.ActivityThread.main (ActivityThread.java:8377)
  at java.lang.reflect.Method.invoke
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:584)

My setAdmob method

    private void setAdmodAds() {

    AdRequest adRequest = new AdRequest.Builder().build();
    InterstitialAd.load(this, INTERSTITIAL_AD_ID1, adRequest, new InterstitialAdLoadCallback() {
        @Override
        public void onAdLoaded(@NonNull InterstitialAd interstitialAd) {
            super.onAdLoaded(interstitialAd);

            if (!msharedPreferences.getBoolean("privacy_start_clicked",false)) {
                showLoadingAdDialog();
            }
            interstitial = interstitialAd;
            interstitial.setOnPaidEventListener(new OnPaidEventListener() {
                @Override
                public void onPaidEvent(@NonNull AdValue adValue) {

                    commonMethods.Paid_Ad_Impression(adValue,INTERSTITIAL_AD_ID1);
                    commonMethods.Daily_Ads_Revenue(adValue);
                }
            });
            Log.e("TAG", "onAdLoaded");
            countdownStart = true;
            interstitial.setFullScreenContentCallback(new FullScreenContentCallback() {
                @Override
                public void onAdDismissedFullScreenContent() {
                    // Called when fullscreen content is dismissed.
                    //AppUtils.adDismissed = true;
                    AppController.FULL_SCREEN_AD_SHOWNing = false;
                    adLoadingLayout.setVisibility(View.GONE);
                    if(loadingdialog!=null){
                        if(loadingdialog.isShowing()){
                            loadingdialog.dismiss();
                        }
                    }
                    interstitial = null;
                    commonMethods.saveBoolean("privacy_start_clicked",false,context);
                    Log.e("TAG", "onAdDismissedFullScreenContent");
                }

                @Override
                public void onAdFailedToShowFullScreenContent(AdError adError) {
                    // Called when fullscreen content failed to show.
                    // AppUtils.adDismissed = true;
                    AppController.FULL_SCREEN_AD_SHOWNing = false;

                    if(loadingdialog!=null ){
                        if(loadingdialog.isShowing()){
                            loadingdialog.dismiss();
                        }
                    }
                    commonMethods.saveBoolean("privacy_start_clicked",false,context);
                    adLoadingLayout.setVisibility(View.GONE);
                    showLangScreen();
                    interstitial = null;

                    Log.d("TAG", "onAdFailedToShowFullScreenContent");
                }

                @Override
                public void onAdShowedFullScreenContent() {
                    // Called when fullscreen content is shown.
                    // Make sure to set your reference to null so you don't
                    // show it a second time.

                    AppController.FULL_SCREEN_AD_SHOWNing = true;
                    Log.d("TAG", "onAdShowedFullScreenContent");
                    commonMethods.saveBoolean("privacy_start_clicked",false,context);
                    new Handler().postDelayed(new Runnable() {
                        @Override
                        public void run() {
                            if(loadingdialog!=null){
                                if(loadingdialog.isShowing()){
                                    loadingdialog.dismiss();
                                }
                            }
                            adLoadingLayout.setVisibility(View.GONE);
                        }
                    }, 500);
                    showLangScreen();
                    Log.d("TAG", "The ad was shown.");
                }
            });

            new Handler().postDelayed(new Runnable() {

                @Override
                public void run() {
                    if(interstitial!=null){
                        
                        interstitial.show(OpenActivity.this);
                    }

                }
            }, 1000);
        }

        @Override
        public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) {
            super.onAdFailedToLoad(loadAdError);
            // Log.e("TAG", " main ad failed");
            Log.e("TAG", loadAdError.getMessage());
            countdownStart = true;
            AppController.FULL_SCREEN_AD_SHOWNing = false;
            if(loadingdialog!=null){
                if(loadingdialog.isShowing()){
                    loadingdialog.dismiss();
                }
            }
            adLoadingLayout.setVisibility(View.GONE);
            interstitial = null;
            showLangScreen();

        }
    });
}
0

There are 0 answers