2

我希望以随机选择的秒数在我的应用程序上显示全屏 Facebook 广告。

  @Override
    public void onAdLoaded(Ad ad) {
        // Ad is loaded and ready to be displayed
        // You can now display the full screen ad using this code:
        int milliSeconds = getRandomSeconds(5000, 10000);
        showFbFullScreenAdAfter(milliSeconds);
    }

    @Override
    public void onAdClicked(Ad ad) {

    }

    private int getRandomSeconds(int low, int high) {
        Random r = new Random();
        int result = r.nextInt(high - low) + low;
        return result;
    }

    private void showFbFullScreenAdAfter(int miliSeconds) {
        final Handler handler = new Handler();
        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                //Do something after 100ms
                if(interstitialAd != null)
                {
                    interstitialAd.show();
                }
            }
        }, miliSeconds);
    }

但是打电话

interstitialAd.show();

我得到这个崩溃。

Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.facebook.ads.internal.DisplayAdController.c()' on a null object reference
       at com.facebook.ads.InterstitialAd.show(Unknown Source)
       at com.appster.map.MapActivity$1.run(MapActivity.java:161)
       at android.os.Handler.handleCallback(Handler.java:739)
       at android.os.Handler.dispatchMessage(Handler.java:95)
       at android.os.Looper.loop(Looper.java:148)
       at android.app.ActivityThread.main(ActivityThread.java:5551)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:730)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620)

在进行空检查之前,但即使在进行空检查之后也会发生这种情况。知道为什么吗?

4

0 回答 0