1

我试图在没有现有活动的情况下创建一个 AdView 实例:

https://developer.android.com/reference/com/google/android/gms/ads/AdView.html

AdView(Context context, AttributeSet attrs) // 从 XML 布局构造 AdView。

XmlPullParser parser = context.getResources().getXml(R.xml.admob);
AttributeSet attributes = Xml.asAttributeSet(parser);
adView = new AdView(context, attributes);

我尝试了不同类型的 XML 内容,但我真的找不到合适的解决方案。

我尝试过的 XML 示例之一:

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

  android:id="@+id/my_button"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  ads:adSize="BANNER">
</com.google.ads.AdView>

无论我尝试,都会引发以下异常:

LogCat: E/AndroidRuntime(29853): Caused by: com.google.ads.internal.b: Required XML attribute "adSize" missing
E/AndroidRuntime(29853):    at com.google.ads.AdView.b(SourceFile:467)
E/AndroidRuntime(29853):    at com.google.ads.AdView.a(SourceFile:336)

有人可以向我展示如何使用 AdView 构造函数的这种变体的示例吗?

4

2 回答 2

1

我发现在没有 Activity 的情况下构建 AdView 要么是不可能的,要么是太难了。

但作为“如何在没有Activity的环境下创建AdView”的解决方案,毕竟没那么难。

只需执行以下操作:

  • 启动一个虚拟 Activity 来创建一个 AdView。立即使用 finish() 关闭 Activity。
  • 从 Activity 视图层次结构中分离 AdView 并将其添加到您可能需要的任何位置。

似乎工作正常(至少是 Android 4.2)。

于 2013-12-01T20:24:39.787 回答
0

你得到的错误

Required XML attribute "adSize" missing

是因为您的 AdView 的 XML 配置中没有adSize属性。您需要选择要展示的广告尺寸。

请参阅https://developers.google.com/mobile-ads-sdk/docs/admob/intermediate#android

于 2013-11-15T22:56:45.640 回答