Admob横幅广告加载两次,导致同一位置出现两个Admob广告。

3
这是我的admob横幅广告的实现方式。
在Layout.xml中:
    <FrameLayout
        android:id="@+id/banner_layout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="48dp"
        android:minHeight="50dp" />

在AdActivity.java中。
    private void initBannerViewGroup() {
        bannerViewGroup = findViewById(getBannerViewGroupId());
        if (bannerViewGroup != null) {
            if (shouldShowBannerAd())
                initAdView();
        } else {
            Log.w(TAG, "Banner view group was not initialized! Wrong id!");
        }
        initInterstitialAd();
    }

private void initAdView() {
        if (mIsPremium){
            bannerViewGroup.setVisibility(View.GONE);
            return;
        }
        adView = new AdView(this);
        adView.setAdUnitId(BANNER_AD_UNIT_ID);
        adView.setAdSize(AdSize.SMART_BANNER);
        bannerViewGroup.addView(adView);
        AdRequest.Builder adRequestBuilder = new AdRequest.Builder();
        adView.loadAd(adRequestBuilder.build());
    }

在pictureactivity.java中调用广告。
    @Override
protected int getBannerViewGroupId() {
    return R.id.banner_layout;
}

@Override
protected boolean shouldShowBannerAd() {
    return true;
}

在上面的实现后,我得到了两个横幅广告,就像下面这样, Admob banner Admob banner2 如果我只在“BANNER”位置使用,那么只有一个广告加载,这是可以接受的。但是使用“SMART_BANNER”时会出现两个广告。
真的需要修复它。
2个回答

0

对我来说,双重横幅的问题与使用Activity类的recreate()方法重新启动Android Activity有关。

我通过切换另一种重新启动Android活动的方式来解决了这个问题:

startActivity(Intent.makeRestartActivityTask(getActivity().getIntent().getComponent()));

之后,我在应用底部的双重横幅问题终于得到了解决。


-1

按照此页面的说明实现Admob横幅解决了我的问题。


1
你用了那个页面的哪一部分来解决问题? - loekTheDreamer
1
@bantingGamer 他可能是在XML中添加横幅的方式。我无法通过编程方式正确地添加SMART_BANNER或FLUID横幅,甚至是新的自适应横幅。它们都会为我产生双重横幅。 - Alex

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接