Android AdSense. Не вижу рекламу в приложении - PullRequest
1 голос
/ 13 июня 2011

У меня проблема с AdSence. Я пытался решить эту проблему последние пару дней, но безрезультатно. Я использовал руководство разработчика, но оно все еще пусто на месте баннера.

Что я делаю в приложении. Прежде всего я добавил объект TableRow и добавил к нему AdView:

    banner = new TableRow(engine);
    banner.setGravity(Gravity.TOP & Gravity.RIGHT);

    adView =  new AdView(engine, AdSize.BANNER, "a14def8xxxxxxxx");
    banner.addView(adView); 
    AdRequest request = new AdRequest(); 
    adView.loadAd(request);

Впоследствии я просто добавил этот объект "баннер" в другой вид. В конце - там нет выхода. В случае, если я изменил AdView на TextView, просто для подтверждения концепции, он работает нормально.

Выходной журнал:

06-13 18: 04: 38.476: ИНФОРМАЦИЯ / Объявления (576): URL полученного объявления: <"url": "http://r.admob.com:80/ad_source.php?...> 06-13 18: 04: 40.406: ИНФОРМАЦИЯ / Реклама (576): onReceiveAd ()

Единственная странная вещь для меня в журнале:

06-13 18: 04: 40.336: WARN / webcore (576): невозможно получить viewWidth после первого макета

Я не нашел, что это значит, и это из-за AdSence.

Обновление

У меня есть класс:

public class QuestEngine extends Activity {

Затем я пытаюсь создать новый AdView в методе:

public IntroView(QuestEngine engine) {

Именно поэтому в "новом AdView" я использую объект движка.

Ответы [ 2 ]

0 голосов
/ 26 сентября 2014

Хорошо, если вы устанавливаете adView с помощью xml/layout file, сделайте, как указано ниже: -

В вашем файле activity.xml вставьте следующий тег, где вы хотите, чтобы ваш AdView отображался:-

<com.google.ads.doubleclick.DfpAdView 
        android:id="@+id/adView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        ads:adUnitId="/XXXXX/XXXXX"
        ads:adSize="BANNER"
        />

И в своем файле Activity.java напишите этот код в onCreate() Method из Activity Life Cycle: -

// Look up the DfpAdView as a resource and load a request.
        adView = (DfpAdView)this.findViewById(R.id.adView);
        adView.loadAd(new AdRequest()); 

Теперь, если вы хотите программно установить AdView в вашей Деятельности, затем выполните шаги, как указано ниже: -

Напишите следующий код в вашей onCreate() method, я демонстрирую для Fragment, поэтому напишите следующий код в вашей onActivityCreated()Method.

// Create an ad view as a second header for now to meet deadlines
        DfpAdView mAdView=null; //you can also define this as a Global Variable.
        if (mAdView == null) {
            mAdView = new DfpAdView(getActivity(), AdSize.BANNER, "/XXXX/XXXX"); //give your adId incase of XXXX
            iaddHeight= (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 50, getResources().getDisplayMetrics()); //This code is used to set the height of the addHeight as 50 pixels, which could be used in layout params.

            RelativeLayout fl =new RelativeLayout(this.getActivity());
            RelativeLayout.LayoutParams flParams =new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, 
                    LayoutParams.WRAP_CONTENT);
            flParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);

            FrameLayout.LayoutParams para =new FrameLayout.LayoutParams(LayoutParams.MATCH_PARENT, 
                    LayoutParams.MATCH_PARENT); 
         para.setMargins(0, 0, 0,iaddHeight);

        getListView().setLayoutParams(para);

        this.getActivity().addContentView(fl, flParams);        
        fl.addView(mAdView,flParams);
        }
        mAdView.loadAd(new AdRequest());

Надеюсь, что это может помочь любым будущим пользователям ...

0 голосов
/ 13 июня 2011

Измените новое объявление AdView на:

adView =  new AdView(this, AdSize.BANNER, "a14def820df0417");

Объект движка не содержит контекст для своих измерений. Размеры строки таблицы находятся в контексте действия "this"

...