2

私は周りを検索しましたが、この問題に対する答えがうまくいく答えを見つけることができないようです。

私が得るエラーは「広告を表示するのに十分なスペースがありません!欲しい:480、75、持っている:480、0」です

どういうわけか私の広告には利用可能な高さがないようです。

これはHaxeNMEで動作し、私の電話はAndroid4.0.3を搭載したHTCOne S(540x960)です。

Javaコードは次のとおりです。

public class AdWhirl
{
public static RelativeLayout adLayout;
public static GameActivity activity;
public static String code;

public static void init(String code)
{
    AdWhirl.code = code;
    activity = GameActivity.getInstance();

    activity.runOnUiThread(new Runnable() 
    {
        public void run() 
        {
            adLayout = new RelativeLayout(activity);

            //Nothing works till this is set.
            AdWhirlManager.setConfigExpireTimeout(1000 * 60 * 5);

            RelativeLayout.LayoutParams p = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT); 
            ViewGroup view = (ViewGroup) activity.getWindow().getDecorView();
            ViewGroup content = (ViewGroup) view.getChildAt(0);
            content.addView(adLayout, p);
        }
    });
}

public static void showAd(final int position)
{
    if(activity == null)
    {
        return;
    }

    activity.runOnUiThread(new Runnable() 
    {
        public void run() 
        {
            AdWhirlLayout l = new AdWhirlLayout(activity, code);
            l.setMaxHeight(75); //AdMob asks for this minimum height

            RelativeLayout.LayoutParams p = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 

            //Bottom-Center
            if(position == 0)
            {
                p.addRule(RelativeLayout.CENTER_HORIZONTAL);
                p.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
            }

            //Top-Center
            else
            {
                p.addRule(RelativeLayout.CENTER_HORIZONTAL);
                p.addRule(RelativeLayout.ALIGN_PARENT_TOP);
            }

            adLayout.addView(l, p);
        }
    });
}

public static void hideAd()
{
    if(activity == null)
    {
        return;
    }

    activity.runOnUiThread(new Runnable() 
    {
        public void run() 
        {
            adLayout.removeAllViews();
        }
    });
}
}
4

1 に答える 1

0

XML レイアウトを確認せずに推測することしかできませんが、XML を次のようにする必要があります。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
    android:id="@+id/main_relative_layout_ad"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    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=".GameActivity" >

    <!-- Note the layout_above attribute, below --> 

    <TextView
        android:id="@+id/textView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingBottom="10dp"
        android:layout_above="@+id/adView"
        android:gravity="center"
        android:text="@string/your_text_here" />

    <!-- Note the alignParentBottom attribute, below --> 

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

</RelativeLayout>

おそらく使用しているレイアウトは貪欲で、利用可能なすべてのスペースを使い果たしています。を使用layout_aboveすると、レイアウトに広告用のスペースが強制的に残されます。

サポートの最初のルールは GIGO であることを覚えておいてください。198 人目の人があえて答えを推測する前に、あなたの質問に対する 197 のビューが示しているように、情報が間違っていたり不完全であったりすると、答えが間違っているか、まったく答えがありません。

于 2013-04-22T03:18:34.270 に答える