【问题标题】:Not enough space to show ad (AdMob)空间不足,无法展示广告 (AdMob)
【发布时间】:2016-07-22 21:04:14
【问题描述】:

我试图在我的活动中显示AdMob 广告,但它总是给出“没有足够的空间来显示广告”的错误。

我的 XML 文件是:

<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"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <com.google.ads.AdView
        android:id="@+id/adMobadView"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        ads:adSize="BANNER"
        ads:adUnitId="@string/admobid"
        android:layout_alignParentBottom="true"
        android:gravity="bottom|center_horizontal"
        ads:loadAdOnCreate="true" />
</RelativeLayout>

我的 Java 文件:

    AdView ad=(AdView)findViewById(R.id.adMobadView);

    AdRequest re = new AdRequest();
    re.setTesting(true);
    re.setGender(AdRequest.Gender.FEMALE);
    ad.loadAd(re);

LogCat:

   02-18 14:16:17.869: W/webcore(813): Can't get the viewWidth after the first layout
   02-18 14:16:17.979: I/Ads(813): onReceiveAd()
   02-18 14:16:17.979: W/Ads(813): Not enough space to show ad! Wants: <320, 50>, Has: <288, 430>

【问题讨论】:

  • 尝试在“com.google.ads.AdView”广告视图中将宽度设置为 match_parent 并将高度设置为 wrap_content。只需检查!
  • 您是否在 Manifest 文件中使用对话框主题进行活动。
  • 只需将您的 AdView 置于线性布局内。下面我举个例子..你可以试试

标签: android layout admob


【解决方案1】:

RelativeLayout 的左右填充占用了 AdView 所需的空间。

将 RelativeLayout 配置更改为:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 ...
 android:paddingLeft="0dp"
 android:paddingRight="0dp"
 ...
>

您可能还想将 AdView 配置更改为:

<com.google.ads.AdView
        android:id="@+id/adMobadView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        ...
        />

因为您真的不希望 AdView 占据整个屏幕。

【讨论】:

    【解决方案2】:

    检查屏幕和内边距的尺寸,看看它是否真的合适。

    另外,尝试将 Adview 更改为:

        <com.google.ads.AdView
            android:id="@+id/adMobadView"
            android:layout_width="320dp"
            android:layout_height="50dp"
            ads:adSize="BANNER"
            ads:adUnitId="@string/admobid"
            android:layout_alignParentBottom="true"
            android:layout_centerHorizontal="true"
            ads:loadAdOnCreate="true" />
    

    【讨论】:

      【解决方案3】:
      to show ads inside relative layout you can follow this design
      
      <RelativeLayout
              android:id="@+id/relativeLayoutpopular"
              android:layout_width="fill_parent"
              android:layout_height="wrap_content"
              android:layout_alignParentLeft="true"
              android:layout_above="@+id/bottomBar"
              android:layout_below="@+id/relativeLayoutadd"
              android:layout_marginTop="5dp"
              >
                  <LinearLayout
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
              android:orientation="vertical"
              android:paddingTop="3dp">
               <com.google.ads.AdView
                   xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
                   android:id="@+id/adView"
                   android:layout_width="fill_parent"
                  android:layout_weight="0.9"
                  android:layout_height="wrap_content"
                  ads:adSize="SMART_BANNER"
                  android:background="#2d2f2f"
                  ads:adUnitId="admobId" />
              </LinearLayout>
          </RelativeLayout>
      

      【讨论】:

        【解决方案4】:

        我在使用 NativeExpressAdView 时遇到了同样的问题。如果您在布局中添加填充或边距,我认为固定广告的尺寸宽度不是一个好主意。我建议以编程方式进行

        1. 第一步:获取屏幕宽度的dp大小 <pre></pre>

          DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics(); //float dpHeight = displayMetrics.heightPixels / displayMetrics.density; dpWidth = displayMetrics.widthPixels / displayMetrics.density;

        2. 第二步:

        <pre></pre>

        mAdView.setAdSize(new AdSize((int) dpWidth, 150));

        【讨论】:

          【解决方案5】:

          只需在 res->values->dimens.xml 中将边距设置为 0dp

          <dimen name="activity_horizontal_margin">0dp</dimen>
          <dimen name="activity_vertical_margin">0dp</dimen>
          

          【讨论】:

          • 看得很清楚,先生!就我而言,这也是错误。它不喜欢边缘的废话!
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-11-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多