NullPointerException销毁AdView

时间:2014-04-01 15:25:45

标签: android adview

我在onPostCreate中创建了这样的AdView:

 private AdView mAd;

 public void onPostCreate(Activity a) {
     LOGE(TAG, "Ads are enabled: creating");
     mAd = (AdView) (a.findViewById(R.id.adView));
     AdRequest adRequest = new AdRequest();
     adRequest.addTestDevice("xxxxxx");
     mAd.loadAd(new AdRequest());
 }
然后我就像这样摧毁它:

public void onDestroy(Activity a) {
    if (mAd != null) {
         mAd.destroy();
    }
    super.onDestroy();

}

从我的用户日志中,我有时会看到:

  

引起:java.lang.NullPointerException at   android.webkit.WebView.requestFocus(WebView.java:8925)... at   android.view.ViewGroup.removeView(ViewGroup.java:2135)... at   org.akul.psy.gui.BaseActivity.onDestroy(BaseActivity.java:69)

我相信这是因为我在销毁AdView时遇到了一些问题。

我能正确地做到吗?我必须这样做吗?我正在摧毁它,因为我跟着谷歌的例子(我相信)。

1 个答案:

答案 0 :(得分:1)

只有在使用此代码

创建AdView实例时,才必须销毁adView

AdView adView = new AdView(this);

但是在你的情况下你的Adview在你的xml中,并且你试图找到视图的实例(而不是新的内存分配)。当从堆栈中删除活动时,将破坏在xml中创建的实例。