我希望在随机选择的秒数内在我的应用上显示全屏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)
在进行空检查之前,即使在进行空检查之后也会发生这种情况。知道为什么吗?