必须在调用loadAd之前设置广告尺寸和广告单元ID

时间:2015-01-05 06:25:01

标签: android admob

我已经检查过StackOverflow上的其他问题,但我的情况与其中任何一个都不匹配。我已经设置了单位大小和单位ID,只调用了一次构建。有什么问题?

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:ads="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent" android:layout_height="match_parent">
    <com.google.android.gms.ads.AdView
        android:id="@+id/topAdView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        ads:adUnitId="@string/topAdUnitID">
    </com.google.android.gms.ads.AdView>
</RelativeLayout>

这是我的广告创建功能

public class TopAd  extends Fragment {
    private AdView topAdView;
    @Override
    public void onActivityCreated(Bundle bundle) {
        super.onActivityCreated(bundle);

        // Gets the ad view defined in layout/ad_fragment.xml with ad unit ID set in
        // values/strings.xml.
        topAdView = (AdView) getView().findViewById(R.id.topAdView);
        topAdView.setAdSize(AdSize.SMART_BANNER);

        // Create an ad request. Check logcat output for the hashed device ID to
        // get test ads on a physical device. e.g.
        // "Use AdRequest.Builder.addTestDevice("ABCDEF012345") to get test ads on this device."
        AdRequest adRequest = new AdRequest.Builder()
                .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
                .build();

        // Start loading the ad in the background.
        topAdView.loadAd(adRequest);
    }
}

当我运行时,应用程序崩溃时出现错误“必须在调用loadAd之前设置广告尺寸和广告单元ID”行“topAdView.loadAd(adRequest);”。我做错了什么?

1 个答案:

答案 0 :(得分:3)

以xml而不是代码来指定广告尺寸, 例如。

ads:adSize="BANNER"

并删除此行

topAdView.setAdSize(AdSize.SMART_BANNER);

希望它有所帮助。

干杯 -Aman