2012-07-17 43 views
1

这里有一个奇怪的问题:当我通过xml设置测试模式时,我会在模拟器中收到预期的测试广告。但是,当我尝试以编程方式做同样的事情时,我似乎得到了真正的广告。根据Admob文档,这两种方法应该是等效的,不是?这里是我的XML代码:以编程方式设置测试模式时出现真实AdMob广告

<com.google.ads.AdView 
        android:id="@+id/adView" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_alignParentLeft="true" 
        android:layout_alignParentTop="true" 
        ads:adSize="BANNER" 
        ads:adUnitId="xxxxxxxxxxx" 
        ads:loadAdOnCreate="true"> 
    </com.google.ads.AdView> 

这里是相关的Java代码:

@Override 
public void onCreate(Bundle savedInstanceState) { 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    AdRequest adRequest = new AdRequest(); 
    adRequest.addTestDevice(AdRequest.TEST_EMULATOR); 

} 

正如前面提到的,如果我插入行广告:的testDevices = “TEST_EMULATOR,TEST_DEVICE_ID” 到上面的XML代码,我得到的测试广告就好了。有任何想法吗?

回答

1

我相信你必须在AdView对象上调用.loadAd(adRequest)。

See Google's AdMob documentation here

添加com.google.ads.AdView部。

+0

好人,那工作。事实证明,如果您要以编程方式设置测试模式,则还需要按照您的建议以编程方式加载广告。所以我从我的xml中删除了ads:loadAdOnCreate =“true”,并将您的代码添加到了Java,并且它工作正常。谢谢。 – 2012-07-17 17:47:48

1

您不必以编程方式调用它。

我花了一段时间,直到我得到的是什么设备AdMob的SDK有什么期待的Cuz”我想这是一件关系到像(ADB设备)的实际设备

但这里是从官方文档评论清除它。

“将会有与当前的设备添加到测试设备列表中所需的代码日志消息”

你有你可能会得到类似的消息给它

I/Ads(26674): To get test ads on this device, call adRequest.addTestDevice("F1254CDFBA84BDC27F5C7C6E12445D06"); 

所有做后也就是这个ID放入您的布局XML如下

<com.google.ads.AdView 
    android:layout_alignParentBottom="true" 
    android:id="@+id/adView" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    ads:adSize="BANNER" 
    ads:adUnitId="@string/publisherId" 
    ads:loadAdOnCreate="true" 
    ads:testDevices="TEST_EMULATOR, F1254CDFBA84BDC27F5C7C6E12445D06" /> 

希望它可以帮助你们走出

保罗米格尔阿尔梅达

相关问题