Android 如何正确删除应用程序购买中的广告

Android 如何正确删除应用程序购买中的广告,android,in-app-purchase,admob,in-app-billing,interstitial,Android,In App Purchase,Admob,In App Billing,Interstitial,我成功地在我的项目中实现了Google计费库。我在应用程序中添加了一个应用程序内购买来删除应用程序中的广告,我对其进行了测试,并且在购买后删除了广告,但是当中间广告应该出现时(如果我购买了该项目,则不应该出现),我得到了应用程序崩溃 我注意到这种情况也发生在那些没有为删除广告付费的普通用户身上 是否会因为应用程序在Google Play上保存为草稿而不是live而发生这种情况?我真的不想用这个可能的bug发布它,因为人们可能会觉得它很烦人,他们可能会永远卸载这个应用 请让我知道,如果这是原因,在

我成功地在我的项目中实现了Google计费库。我在应用程序中添加了一个应用程序内购买来删除应用程序中的广告,我对其进行了测试,并且在购买后删除了广告,但是当中间广告应该出现时(如果我购买了该项目,则不应该出现),我得到了应用程序崩溃

我注意到这种情况也发生在那些没有为删除广告付费的普通用户身上

是否会因为应用程序在Google Play上保存为草稿而不是live而发生这种情况?我真的不想用这个可能的bug发布它,因为人们可能会觉得它很烦人,他们可能会永远卸载这个应用

请让我知道,如果这是原因,在另一种情况下,我会编辑我的文章,并粘贴一些代码在那里

以下是LogCat的一些内容:

05-05 22:23:52.660: E/AndroidRuntime(16730): FATAL EXCEPTION: main
05-05 22:23:52.660: E/AndroidRuntime(16730): Process: com.my.app, PID: 16730
05-05 22:23:52.660: E/AndroidRuntime(16730): java.lang.NullPointerException: Attempt to invoke virtual method 'boolean com.google.android.gms.ads.InterstitialAd.isLoaded()' on a null object reference
05-05 22:23:52.660: E/AndroidRuntime(16730):    at com.my.app.GameActivity$4.run(GameActivity.java:211)
05-05 22:23:52.660: E/AndroidRuntime(16730):    at android.os.Handler.handleCallback(Handler.java:739)
05-05 22:23:52.660: E/AndroidRuntime(16730):    at android.os.Handler.dispatchMessage(Handler.java:95)
05-05 22:23:52.660: E/AndroidRuntime(16730):    at android.os.Looper.loop(Looper.java:145)
05-05 22:23:52.660: E/AndroidRuntime(16730):    at android.app.ActivityThread.main(ActivityThread.java:5834)
05-05 22:23:52.660: E/AndroidRuntime(16730):    at java.lang.reflect.Method.invoke(Native Method)
05-05 22:23:52.660: E/AndroidRuntime(16730):    at java.lang.reflect.Method.invoke(Method.java:372)
05-05 22:23:52.660: E/AndroidRuntime(16730):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1388)
05-05 22:23:52.660: E/AndroidRuntime(16730):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1183)
我正在使用一个名为“NOADS”的布尔值来检查用户是否购买了该商品:

private void itemPurchased() {
        SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
        Editor editor = preferences.edit();
        editor.putBoolean("NOADS", true);
        editor.commit();
}
我显示或隐藏以下用户的广告:

public void addInMainActivity() {
        if (!PreferenceManager.getDefaultSharedPreferences(this).getBoolean("NOADS", false)) {

            AdView ad = (AdView) findViewById(R.id.adView);
            ad.loadAd(new AdRequest.Builder().build());

            // Create the interstitial.
            interstitial = new InterstitialAd(this);
            interstitial.setAdUnitId(getResources().getString(R.string.adInterstitialUnitId));

            // Create ad request.
            AdRequest adRequest = new AdRequest.Builder().build();

            // Begin loading your interstitial
            interstitial.loadAd(adRequest);
            } else {
                ((AdView) findViewById(R.id.adView)).setVisibility(View.GONE);
            }
}
谢谢你的帮助

看看
游戏活动
的第211行。您正在调用
interstitual.isAdLoaded()

此时,
interstitual
为空。

我忘了调用addInMainActivity函数。谢谢你的回答!