2013-06-24 6 views
0

Я начинаю, я пытаюсь добавить admob добавить в мое приложение. Но у меня есть некоторые ошибки, с которыми я не могу справиться.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

В вашем RelativeLayout, который содержит AdView, вы прилагая расположение контента после AdView. Если да, то каковы значения android: layout_width и android: layout_height. Если вы используете fill_parent/match_parent для обоих, то ваше объявление никогда не будет отображаться.

Трюк состоит в том, чтобы изменить режим релятивирования на линейный выход. Затем для макета контента в этом линейном режиме установите его android: layout_width = "fill_parent" и android: layout_height = "0dp". Добавьте новый атрибут android: layout_weight = "1" для макета содержимого. Речь идет о том, чтобы спросить макет содержания, чтобы разместить оставшееся пространство linearlayout после того, как рекламное объявление заняло свое место. Надеюсь это поможет.