我查看了所有其他问题,但我没有找到答案 我有这个代码
<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“缺失” 我也试过从活动中创建横幅但没有改变
答案 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:testDevices
和ads: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>