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

2022-08-31 20:20:53

我在我的主xml文件中有这个:

<com.google.android.gms.ads.AdView
    xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        ads:adUnitId="******************"
        ads:adSize="BANNER"
        android:id="@+id/adView"/>

我已经设置了广告尺寸和单位ID,但是当它运行时(从MainActivity.java),

AdView adView = (AdView)this.findViewById(com.example.lovetestactual.R.id.adView);
AdRequest adRequest = new AdRequest.Builder().build();
adView.loadAd(adRequest);

它抛出了标题中内容的异常。


答案 1

我在github示例中找到了解决方案,即:

而不是

xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"

删除 xmlns:ads*** 标签并添加

xmlns:ads="http://schemas.android.com/apk/res-auto"

标记到线性布局标记,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          xmlns:ads="http://schemas.android.com/apk/res-auto"
          android:orientation="vertical"
          android:layout_width="match_parent"
          android:layout_height="match_parent">
<TextView android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:text="@string/hello"/>
<com.google.android.gms.ads.AdView android:id="@+id/adView"
                       android:layout_width="match_parent"
                       android:layout_height="wrap_content"
                       ads:adSize="BANNER"
                       ads:adUnitId="INSERT_YOUR_AD_UNIT_ID_HERE"/>
</LinearLayout>

就是这样:)

此 xml 的 github 链接


答案 2

警告:请务必以相同的方式设置广告尺寸和广告单元 ID(即,在 XML 中同时设置或同时以编程方式设置)。

https://developers.google.com/admob/android/banner


推荐