2013-06-24 54 views
0

我是一个初学者,我试图设置一个admob添加在我的app.But我有一些错误女巫我无法管理。admob不显示在android

XMLFILE

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
tools:context=".MainActivity" > 

<com.google.ads.AdView android:id="@+id/main" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
ads:adUnitId="MY_AD_UNIT_ID" 
ads:adSize="BANNER" 
ads:testDevices="TEST_EMULATOR, TEST_DEVICE_ID" 
ads:loadAdOnCreate="true"/> 
</RelativeLayout> 

清单文件。

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.example.admob" 
android:versionCode="1" 
android:versionName="1.0" > 
<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17" /> 

<application 
    android:allowBackup="true" android:icon="@drawable/ic_launcher"  android:label="@string/app_name" android:theme="@style/AppTheme" > 

<activity 
android:name="com.example.admob.MainActivity" 
android:label="@string/app_name" > 
<intent-filter> 
<action android:name="android.intent.action.MAIN" /> 
<category android:name="android.intent.category.LAUNCHER" /> 
</intent-filter> 
     </activity> 
     <activity 
      android:name="com.google.ads.AdActivity"    
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|scre enSize|smallestScreenSize" /> 

</application> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 
</manifest> 

Java代码:

package com.example.admob; 

import com.google.ads.AdRequest; 
import com.google.ads.AdSize; 
import com.google.ads.AdView; 
import android.os.Bundle; 
import android.app.Activity; 
import android.view.Menu; 
import android.widget.LinearLayout; 
import android.widget.RelativeLayout; 

public class MainActivity extends Activity 
{ 
private static final String MY_AD_UNIT_ID = null; 
private AdView adView; 

@Override 
protected void onCreate(Bundle savedInstanceState) 
{ 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_main); 
adView = new AdView(this, AdSize.BANNER, MY_AD_UNIT_ID); 
RelativeLayout main = (RelativeLayout)findViewById(R.id.main); 
main.addView(adView); 
adView.loadAd(new AdRequest()); 
AdRequest adRequest = new AdRequest(); 
adRequest.addTestDevice(AdRequest.TEST_EMULATOR);    
adRequest.addTestDevice("TEST_DEVICE_ID"); 
} 

@Override 
public void onDestroy() { 
adView.destroy(); 
super.onDestroy(); 
} 
} 

当活动开始这种类型的错误发生onFailedToReceivedAd(InvalidAdRequest)
我不知道是什么问题。

回答

0

您尚未加载注册过测试设备的AdRequest。将您的代码更改为:

//.... 
main.addView(adView); 

AdRequest adRequest = new AdRequest(); 
adRequest.addTestDevice(AdRequest.TEST_EMULATOR);    
adRequest.addTestDevice("TEST_DEVICE_ID"); 
adView.loadAd(adRequest); 
+0

它并没有帮助男人:/,我越来越疯狂,我不知道该怎么办@Jong – Whady

0

在包含adview的相关布局中,是否在adview之后附加了内容布局。如果是这样,android:layout_width和android:layout_height值是什么。如果您对两者都使用fill_parent/match_parent,则您的adview将永远不会显示。

诀窍是将relativelayout更改为linearlayout。然后,对于此线路布局中的内容布局,请设置其android:layout_width =“fill_parent”和android:layout_height =“0dp”。为内容布局添加一个新属性android:layout_weight =“1”。这些做的是要求内容布局在adview占据其位置后容纳linearlayout的剩余空间。希望这可以帮助。