必需的XML属性" adSize"谷歌播放服务失踪了

时间:2014-04-08 21:18:50

标签: android admob

我查看了所有其他问题,但我没有找到答案 我有这个代码

<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/sfondo"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

<com.google.android.gms.ads.AdView 
   android:id="@+id/adView"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       ads:adUnitId="MY_AD_UNIT_ID"
       ds:testDevices="TEST_EMULATOR,C8D15E364178"
       ads:adSize="BANNER"
       ads:loadAdOnCreate="true"/>

但它说“必需的XML属性”adSize“缺失” 我也试过从活动中创建横幅但没有改变

5 个答案:

答案 0 :(得分:2)

“loadAdOnCreate”和“testDevices”XML属性不再可用。 使您的广告与Google Play服务合作

这是XML布局

<?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>

这是你的java文件

package com.google.example.gms.ads.xml;

import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;

import android.app.Activity;
import android.os.Bundle;

/**
 * A simple {@link Activity} which embeds an AdView in its layout XML.
 */
public class BannerXMLSample extends Activity {

  private static final String TEST_DEVICE_ID = "INSERT_YOUR_TEST_DEVICE_ID_HERE";

  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    // The "loadAdOnCreate" and "testDevices" XML attributes no longer available.
    AdView adView = (AdView) this.findViewById(R.id.adView);
    AdRequest adRequest = new AdRequest.Builder()
        .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
        .addTestDevice(TEST_DEVICE_ID)
        .build();
    adView.loadAd(adRequest);
  }
}

请参阅此处的示例 https://github.com/googleads/googleads-mobile-android-examples/tree/master/admob/banner-xml

答案 1 :(得分:1)

我的要求是能够动态传入广告单元ID,而不是在xml中指定它们。事实证明框架不喜欢这些的混合,因此我以编程方式100%创建我的广告:

{{1}}

AdParams类是我自己的类,您可以将它替换为您自己的类,或传入字符串,但一般解决方案将在此处发布。

答案 2 :(得分:0)

我看到您使用新的Google Play Admob。然后再查看this guide

使用此版本的Admob,您必须设置测试设备&amp;加载广告以编程方式而不是在xml中执行此操作。请注意,在Google Play Admob中ads:testDevicesads:loadAdOnCreate属性不再可用 ==&gt;从xml中删除这些属性!

请参阅此示例,了解如何在“活动”中执行此操作:

// Java code required.
// testDevices and loadAdOnCreate attributes are
// no longer available.
AdView adView = (AdView)this.findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder()
    .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
    .addTestDevice("TEST_DEVICE_ID")
    .build();
adView.loadAd(adRequest);

答案 3 :(得分:0)

此页面应解释Admob SDK和Google Play服务的一些讨论。 https://developers.google.com/mobile-ads-sdk/docs/adx/play-migration

你的XML很好。 除非您无法在Google Play服务中使用以下内容:

ads:loadAdOnCreate="true"/
ads:testDevices="

使用Google Play服务,您无法像使用Admob Sdk一样使用xml中的设备ID作为横幅广告。使用Google Play服务,您只能将设备ID放在java代码中。

.............. 使用XML创建AdView并加载广告

//CODE XML FOR Admob BANNER:

<com.google.ads.AdView
    xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
    android:id="@+id/adView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    ads:adUnitId="MY_AD_UNIT_ID"
    ads:adSize="BANNER"
    ads:testDevices="TEST_EMULATOR, TEST_DEVICE_ID"
    ads:loadAdOnCreate="true"/>


// No Java code required.

//...............................................................
//CODE XML For Google Play Banner:

<com.google.android.gms.ads.AdView
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:id="@+id/adView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
ads:adUnitId="MY_AD_UNIT_ID"
ads:adSize="BANNER"/>


// Java code required.
// testDevices and loadAdOnCreate attributes are
// no longer available.
AdView adView = (AdView)this.findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder()
.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
.addTestDevice("TEST_DEVICE_ID")
.build();
adView.loadAd(adRequest);

答案 4 :(得分:0)

只需在您的"xmlns:ads="http://schemas.android.com/apk/res-auto"文件中添加activity_main.xml

<com.google.android.gms.ads.AdView
    xmlns:ads="http://schemas.android.com/apk/res-auto"
    android:id="@+id/adView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    ....
    ....
    ....
</com.google.android.gms.ads.AdView>