确切的尺寸"没有足够的空间"根据需要和有dp使用Admob

时间:2018-01-29 04:17:10

标签: android android-layout admob google-admob

我试过设置左边和右边的右边填充边距为Not enough space to show ad (AdMob)

Error:  W/Ads: Not enough space to show ad. Needs 411x49 dp, but only has 411x49 dp.


@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        MobileAds.initialize(this, String.valueOf(R.string.ad_app_id));

        mAdView = findViewById(R.id.adView);
        AdRequest.Builder b = new AdRequest.Builder();
        b.addTestDevice((AdRequest.DEVICE_ID_EMULATOR));
        b.addTestDevice("<Redacted>");
        AdRequest adRequest = b.build();
        mAdView.loadAd(adRequest);
        initialiseView();
    }

    private void initialiseView() {
        LinearLayout mLinearLayout = findViewById(R.id.linearLayout);
        mGameView = new GameView(this);
        mLinearLayout.addView(mGameView, 0);
    }



<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingLeft="0dp"
    android:paddingRight="0dp"
    >


    <LinearLayout
        android:paddingLeft="0dp"
        android:paddingRight="0dp"
        android:layout_weight="512"
        android:orientation="vertical"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/linearLayout">
    </LinearLayout>


    <RelativeLayout
        android:layout_weight="1"
        android:paddingLeft="0dp"
        android:paddingRight="0dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:orientation="vertical">

        <com.google.android.gms.ads.AdView
            xmlns:ads="http://schemas.android.com/apk/res-auto"
            android:id="@+id/adView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            ads:adSize="SMART_BANNER"
            ads:adUnitId="ca-app-pub-XXX">
        </com.google.android.gms.ads.AdView>
    </RelativeLayout>
</LinearLayout>

enter image description here

在Nexus5X上,我看到&#34;测试广告&#34;:

enter image description here

更新:我看到了这个奇怪的错误消息:

广告:没有足够的空间来展示广告。需要411x49 dp,但只有411x49 dp。

???

1 个答案:

答案 0 :(得分:1)

在xml文件中,将根布局从Linear Layout更改为RelativeLayout,并从第一个子LinearLayout中删除“android:layout_weight =”512“。

<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingLeft="0dp"
    android:paddingRight="0dp">

 <RelativeLayout
    android:id="@+id/rvAd"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_weight="1"
    android:orientation="vertical"
    android:paddingLeft="0dp"
    android:paddingRight="0dp">

    <com.google.android.gms.ads.AdView xmlns:ads="http://schemas.android.com/apk/res-auto"
        android:id="@+id/adView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        ads:adSize="SMART_BANNER"
        ads:adUnitId="ca-app-pub-XXX"></com.google.android.gms.ads.AdView>
</RelativeLayout>

<LinearLayout
    android:id="@+id/linearLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_above="@+id/rvAd"
    android:orientation="vertical"
    android:paddingLeft="0dp"
    android:paddingRight="0dp">
</LinearLayout>
 </RelativeLayout>