AdMob не появляется в моем приложении? - PullRequest
0 голосов
/ 04 декабря 2011

У меня проблема, я хочу добавить admob в Preference Activity, но приложение не показывает ее.

Вот моя активность AdMob:

public class AdMobActivity extends Preference {
    public AdMobActivity(Context context, AttributeSet attrs, int defStyle) {super(context, attrs, defStyle);}
    public AdMobActivity(Context context, AttributeSet attrs) {super(context, attrs);}
    public AdMobActivity(Context context) {super(context);}

    @Override
    protected View onCreateView(ViewGroup parent) {
    // this will create the linear layout defined in

    View view = super.onCreateView(parent);

    // the context is a PreferenceActivity
    Activity activity = (Activity)getContext();

    // Create the adView
    AdView adView = new AdView(activity, AdSize.BANNER, "XXXXXXXXXXX");

    ((LinearLayout)view).addView(adView);

    // Initiate a generic request to load it with an ad
    AdRequest request = new AdRequest();
    adView.loadAd(request);

    return view;
    }
}

Вот мой макет для AdMob (banner.xml):

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">
</LinearLayout>

А вот xml для моей предпочтительной активности:

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
        <PreferenceCategory
                android:title="Ads">
             <com.blabla.asafgasf.AdMobActivity android:layout="@layout/banner"/>
        </PreferenceCategory>   
        <PreferenceCategory
        .....
        </PreferenceCategory>
</PreferenceScreen>

Я установил target=android-13 в project.properties и в моем Манифесте:

<activity android:name=".AdMobActivity"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

<activity android:name="com.google.ads.AdActivity"
              android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>

Если я удалю |screenLayout|uiMode|screenSize|smallestScreenSize из configChanges, в моем приложении появится красное поле с надписью: Вы должны объявить AdActivity в AndroidManifest.xml с configChanges.

Я установил новейшую версию библиотеки AdMob (4.3.1), новейшую версию SDK (API 14) и новейший плагин ADT. Так в чем же проблема?

Ответы [ 2 ]

0 голосов
/ 04 декабря 2011

Я бы порекомендовал вам проверить свой вид в hierarchyviewer инструменте. Вы должны увидеть, добавлен ли ваш вид в ваш LinearLayout или нет. Иногда вид добавляется, но параметры макета неверны, поэтому вид не виден.

Вы можете найти зрителя в \ tools. Просто запустите ваше приложение в эмуляторе, переключитесь в командную строку / терминал и запустите исполняемый файл.

0 голосов
/ 04 декабря 2011

Возможно, у вас нет объявлений для заполнения Admob, что вы получаете в LogCat?

...