Ошибка «Не удается получить viewWidth после первого макета» - PullRequest
4 голосов
/ 15 сентября 2011

Не могу исправить эту ошибку за всю жизнь.Я смотрел на Google и вокруг, и никакие решения не работали.Мое объявление работает нормально на Android 1.5 и 1.6, но выше версии 2 я получаю эту ошибку.

Я разместил свое объявление внутри LinearLayout, который является первым макетом в представлении с прокруткой.

<?xml version="1.0" encoding="utf-8"?>
<ScrollView
  xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads" 
  android:orientation="vertical"
  android:background="@drawable/bg_wallpaper"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content">

    <LinearLayout 
        android:orientation="vertical" 
        android:id="@+id/drillactivity"
        android:layout_width="fill_parent" 
        android:layout_gravity="bottom" 
        android:layout_height="340dp">

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

Я не использую код в своем классе для рекламы.Я предпочитаю делать это только через xml.

Ответы [ 3 ]

3 голосов
/ 14 марта 2012

Используя следующий код, я исправил эту ошибку.

<com.google.ads.AdView
android:id="@+id/adView"
android:layout_width="320dp"
android:layout_height="50dp"
android:gravity="center"
ads:adUnitId="my id goes here"
ads:adSize="BANNER"
ads:loadAdOnCreate="true"/>

У меня нет конкретной причины этой ошибки, она может работать не во всех случаях.

3 голосов
/ 28 ноября 2011

У меня было похожее предупреждение с черным экраном. Проблема заключалась в том, что на устройстве было два разных приложения с одинаковым идентификатором AdMob.

Я удалил второе приложение (используя по ошибке тот же идентификатор), и проблема исчезла.

0 голосов
/ 08 мая 2012

Объявите линейный / относительный макет в XML-файле, который вы добавляете в свою деятельность.а затем установите активность в качестве слушателя для adView.Например:

googleAdView = new AdView(Activity,AdSize.IAB_BANNER, ADMOB_SITE_ID);
googleAdView.setAdListener(Activity);
com.google.ads.AdRequest request = new com.google.ads.AdRequest();
this.adMobLayout.removeAllViews();
this.adMobLayout.addView(googleAdView);
googleAdView.loadAd(request);

Здесь adMobLayout - это макет, который вы объявили в макете xml.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...