【问题标题】:New admob Express Native ads fail with IllegalStateException新的 admob Express 原生广告因 IllegalStateException 而失败
【发布时间】:2016-05-20 21:01:40
【问题描述】:

我一直在尝试将快速原生广告集成到我的应用程序中。在快速原生广告文档中,我读到它们在以 FULL_WIDTH 广告尺寸显示时效果最佳。 我尝试将广告尺寸设置为 FULL_WIDTH,但失败并出现 IllegalStateException:

Caused by: java.lang.IllegalStateException: The ad size and ad unit ID must be set before loadAd is called.

这是我的 xml 代码:

<com.google.android.gms.ads.NativeExpressAdView
android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
ads:adSize="FULL_WIDTH"
ads:adUnitId="@string/native_ad_unit"/>

广告单元是正确的,它适用于其他广告尺寸,如 320x150 等。

我的实现有问题吗?

干杯

【问题讨论】:

    标签: android android-layout admob native-ads


    【解决方案1】:

    我找到了一个解决方案,如果你这样使用它就可以了:

    <com.google.android.gms.ads.NativeExpressAdView
     android:id="@+id/adView"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     ads:adSize="FULL_WIDTHx80"
     ads:adUnitId="@string/native_ad_unit"/>
    

    【讨论】:

    • 非常感谢,您为我节省了很多时间,adSize 是问题所在。
    • 您好,我正在使用原生广告并显示内部错误。已经两天了,对我没有任何帮助。我的 xml 标签
    • 注意:如果NativeExpressAdView 有任何水平边距,ads:adSize="FULL_WIDTHxsome_height" 将不起作用。因为它试图占据设备的整个宽度。
    【解决方案2】:

    您只能以编程方式进行设置。以下是文档的摘录:

    发布商还可以在以编程方式为 NativeExpressAdView 创建 AdSize 时使用 FULL_WIDTH 常量。在这种情况下,广告将占据设备屏幕的整个宽度。

    来源:https://firebase.google.com/docs/admob/android/native-express#nativeexpressadview

    【讨论】:

    • NativeExpressAdView adView = (NativeExpressAdView) v.findViewById(R.id.adView); adView.setAdSize(AdSize.FULL_WIDTH);这不起作用...
    • 只有在以编程方式创建 NativeExpressAdView 时才能设置 AdSize。我找到了一个例子here。只需使用 FULL_WIDTH 而不是示例中给出的 400 宽度。
    猜你喜欢
    • 1970-01-01
    • 2018-05-12
    • 1970-01-01
    • 2018-01-06
    • 2018-07-09
    • 2016-11-13
    • 2020-07-11
    • 2016-10-29
    相关资源
    最近更新 更多