«Невозможно получить ошибку viewWidth после первого макета»

Я не могу исправить эту ошибку для жизни меня. Я смотрел на 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.

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

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

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

 <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"/> 

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

Объявите линейный / относительный макет в 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.