广告优先活动“没有足够的空间来显示广告! 想:<480,75>,具有:<432

2019-09-19 11:36发布

我试图表现出偏好活动的广告,但它永远不会出现。 logcat中始终显示消息 “没有足够的空间来展示广告想:<480,75>,有:<432,1073741823>”

这是我制作的广告。 我有与广告的自定义偏好

public class AdmobPreference extends Preference {

public AdmobPreference(Context context, AttributeSet attrs, int defStyle) {super    (context, attrs, defStyle);}
public AdmobPreference(Context context, AttributeSet attrs) {super(context, attrs);}
public AdmobPreference(Context context) {super(context);}

@Override
protected View onCreateView(ViewGroup parent) {
    // this will create the linear layout defined in ads_layout.xml
    View view = super.onCreateView(parent);

    // the context is a PreferenceActivity
    Activity activity = (Activity)getContext();

    // Create the adView
    AdView adView = new AdView(activity, AdSize.BANNER, "MY KEY");

    ((LinearLayout)view).addView(adView);

    // Initiate a generic request to load it with an ad
    AdRequest request = new AdRequest();
    adView.loadAd(request);     

    return view;    
}
}

然后,我有一个布局的广告投入

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
   android:orientation="vertical"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content">

</LinearLayout>

它被放入喜好XML这一行:

<com.my.package.name android:layout="@layout/admob_preference" />

所以布局被设置为宽度= 480dip高度= 75dip代替WRAP_CONTENT我可以改变它。 这确实显示了广告,但它是被推到了屏幕的右侧,占据了它的意思是略少于一半大小(并切断一半的广告)。

Answer 1:

我假设你试图按照这个例子: Android的AdMob联播广告在PreferenceActivity

我认为,什么是错的是:你伸出的“使用偏好”但你尝试从它定义了一个线性布局。 相反,只需直接将其添加到您的个人偏好屏幕。

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">

...

<com.example.AdmobPreference android:layout="@layout/admob_preference"/>

...
</PreferenceScreen>


Answer 2:

看到类似的问题

设置父的ViewGroup为0的填充解决了这个问题对我来说。

@Override
protected View onCreateView(ViewGroup parent) {
    //Next line solves the error by adjusting the padding of the parent ViewGroup
    parent.setPadding(0, 0, 0, 0);

    // this will create the linear layout defined in ads_layout.xml
    View view = super.onCreateView(parent);

    // the context is a PreferenceActivity
    Activity activity = (Activity)getContext();

    // Create the adView
    AdView adView = new AdView(activity, AdSize.BANNER, "MY KEY");

    ((LinearLayout)view).addView(adView);

    // Initiate a generic request to load it with an ad
    AdRequest request = new AdRequest();
    adView.loadAd(request);     

    return view;    
}


Answer 3:

这可以很容易通过使用来解决AdSize.FLUIDAdSize.SMART_BANNER因为它动态调整AD的宽度和高度。 更多信息adSize时



文章来源: Ad in preference activity “Not enough space to show ad! Wants: <480, 75>, Has: <432, 1073741823>”