Java Admob谷歌播放服务。显示间隙广告时出现空指针异常

Java Admob谷歌播放服务。显示间隙广告时出现空指针异常,java,android,eclipse,admob,google-play-services,Java,Android,Eclipse,Admob,Google Play Services,我正试图将admob集成到我的游戏中,但当我试图显示间隙广告时,我得到了NullPointerException。这是我的代码。。 onCreate的内部 我在这条线上出错了间隙加载(adRequest) 这是我的日志 12-11 17:12:41.755: E/AndroidRuntime(9357): FATAL EXCEPTION: main 12-11 17:12:41.755: E/AndroidRuntime(9357): java.lang.RuntimeException:

我正试图将admob集成到我的游戏中,但当我试图显示间隙广告时,我得到了NullPointerException。这是我的代码。。 onCreate的内部



我在这条线上出错了<代码>间隙加载(adRequest)

这是我的日志

12-11 17:12:41.755: E/AndroidRuntime(9357): FATAL EXCEPTION: main
12-11 17:12:41.755: E/AndroidRuntime(9357): java.lang.RuntimeException: Unable to start activity ComponentInfo{cr.logics.fastfood/cr.logics.fastfood.FastFood}: java.lang.NullPointerException
12-11 17:12:41.755: E/AndroidRuntime(9357):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2100)
12-11 17:12:41.755: E/AndroidRuntime(9357):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2125)
12-11 17:12:41.755: E/AndroidRuntime(9357):     at android.app.ActivityThread.access$600(ActivityThread.java:140)
12-11 17:12:41.755: E/AndroidRuntime(9357):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1227)
12-11 17:12:41.755: E/AndroidRuntime(9357):     at android.os.Handler.dispatchMessage(Handler.java:99)
12-11 17:12:41.755: E/AndroidRuntime(9357):     at android.os.Looper.loop(Looper.java:137)
12-11 17:12:41.755: E/AndroidRuntime(9357):     at android.app.ActivityThread.main(ActivityThread.java:4898)
12-11 17:12:41.755: E/AndroidRuntime(9357):     at java.lang.reflect.Method.invokeNative(Native Method)
12-11 17:12:41.755: E/AndroidRuntime(9357):     at java.lang.reflect.Method.invoke(Method.java:511)
12-11 17:12:41.755: E/AndroidRuntime(9357):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1006)
12-11 17:12:41.755: E/AndroidRuntime(9357):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773)
12-11 17:12:41.755: E/AndroidRuntime(9357):     at dalvik.system.NativeStart.main(Native Method)
12-11 17:12:41.755: E/AndroidRuntime(9357): Caused by: java.lang.NullPointerException
12-11 17:12:41.755: E/AndroidRuntime(9357):     at tj.a(SourceFile:191)
12-11 17:12:41.755: E/AndroidRuntime(9357):     at tt.onTransact(SourceFile:81)
12-11 17:12:41.755: E/AndroidRuntime(9357):     at android.os.Binder.transact(Binder.java:326)
12-11 17:12:41.755: E/AndroidRuntime(9357):     at com.google.android.gms.internal.ac$a$a.a(Unknown Source)
12-11 17:12:41.755: E/AndroidRuntime(9357):     at com.google.android.gms.ads.InterstitialAd.loadAd(Unknown Source)
12-11 17:12:41.755: E/AndroidRuntime(9357):     at cr.logics.fastfood.FastFood.onCreate(FastFood.java:245)
12-11 17:12:41.755: E/AndroidRuntime(9357):     at android.app.Activity.performCreate(Activity.java:5206)
12-11 17:12:41.755: E/AndroidRuntime(9357):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1083)
12-11 17:12:41.755: E/AndroidRuntime(9357):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2064)
12-11 17:12:41.755: E/AndroidRuntime(9357):     ... 11 more
我已经将google play services库添加到我的项目中,将元数据添加到清单中,并按照google指南做了所有事情,但我面临着这个错误,(为我的测试版英语感到抱歉)。 有什么建议吗?
提前谢谢

将以下内容添加到项目的proguard-project.txt中,以防止它剥离admob类

-keep public class com.google.android.gms.ads.** {
  public *;
}

-keep public class com.google.ads.** {
  public *;
}
并将以下活动包括到清单文件中

android:name="com.google.android.gms.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"


在显示以下内容之前,您必须检查广告是否已加载:

if (interstitial!=null && interstitial.isLoaded()) 
{
   interstitial.show();
}

在显示间隙ad之前,必须检查间隙ad对象是否为空,并检查ad是否已加载。 完整代码如下所示:

在活动的onCreate()方法中:

public class MainActivity extends Activity {

     public static InterstitialAd mInterstitialAd;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        MobileAds.initialize(this, new OnInitializationCompleteListener() {
            @Override
            public void onInitializationComplete(InitializationStatus initializationStatus) {}
        });
        mInterstitialAd = new InterstitialAd(this);
        mInterstitialAd.setAdUnitId("ca-app-pub-3940256099942544/1033173712");
        mInterstitialAd.loadAd(new AdRequest.Builder().build());
        mInterstitialAd.setAdListener(new AdListener() {

             @Override
             public void onAdLoaded() {
                  // Code to be executed when an ad finishes loading.
             }

             @Override
             public void onAdFailedToLoad(int errorCode) {
                 // Code to be executed when an ad request fails.
             }

            @Override
            public void onAdClosed() {
                // Load the next interstitial Ad
                mInterstitialAd.loadAd(new AdRequest.Builder().build());
            }

        });
    }
}
为了显示广告,我使用了静态方法。这样我就可以从另一个活动调用此方法

 public static void showInterstitialAd() {

        if (mInterstitialAd != null) {
            if (mInterstitialAd.isLoaded()) {
                mInterstitialAd.show();
            } else {

                mInterstitialAd.loadAd(new AdRequest.Builder().build());
            }
        }


    }


我有完全相同的问题,你设法解决了吗?我得到了完全相同的错误。。想知道你是否能修复它?同样的f******错误。无限崩溃时,同样的错误,以及未知的原因。我有完全相同的问题,你有设法解决它吗?
 public static void showInterstitialAd() {

        if (mInterstitialAd != null) {
            if (mInterstitialAd.isLoaded()) {
                mInterstitialAd.show();
            } else {

                mInterstitialAd.loadAd(new AdRequest.Builder().build());
            }
        }


    }