2

logcat 只给出一个错误,没有足够的空间来显示广告。除了启动屏幕上的 admob 广告外,应用程序中的所有内容都运行良好。这是XML

 <?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:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >

<Button
    android:id="@+id/close"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginBottom="10.0dip"
    android:layout_marginRight="10.0dip"
    android:text="Exit"
    android:textSize="20.0dip" />

 <RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" >

    <com.google.ads.AdView
        android:id="@+id/adView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        ads:adSize="SMART_BANNER"
        ads:adUnitId="XXXXXX"
        ads:loadAdOnCreate="true"
        ads:testDevices="TEST_EMULATOR" >
    </com.google.ads.AdView>
 </RelativeLayout>

</LinearLayout>

我只想在屏幕上显示一个整页广告和一个按钮,单击该按钮将关闭添加并启动主要活动。该按钮工作正常,但是当该 xml 加载时,它不会显示广告,并且打开的窗口比屏幕小得多。

这是上述布局设置为的 .Java 活动。

package com.androidsleepmachine.gamble;

import com.google.ads.AdRequest;
import com.google.ads.AdView;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class Splash extends Activity {

Button close;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.splash);
    close = (Button) findViewById(R.id.close);
    AdView adView = (AdView)this.findViewById(R.id.adView);
    adView.loadAd(new AdRequest());
    close.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            Intent i = new Intent("android.intent.action.Home");
            startActivity(i);


        }
    });
}

}
4

2 回答 2

1

您已在父级上将 layout_height 设置为 wrap_content。改用这个:

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

<Button
    android:id="@+id/close"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginBottom="10.0dip"
    android:layout_marginRight="10.0dip"
    android:text="Exit"
    android:textSize="20.0dip" />

 <RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" >

    <com.google.ads.AdView
        android:id="@+id/adView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        ads:adSize="SMART_BANNER"
        ads:adUnitId="XXXXXX"
        ads:loadAdOnCreate="true"
        ads:testDevices="TEST_EMULATOR" >
    </com.google.ads.AdView>
 </RelativeLayout>

</LinearLayout>

编辑: 根据https://developers.google.com/mobile-ads-sdk/docs/admob/fundamentals#android ,您需要在活动中使用代码来加载您的应用程序:

AdView adView = (AdView)this.findViewById(R.id.adView);
    adView.loadAd(new AdRequest());

编辑2:

与往常一样,您必须将 MY_AD_UNIT_ID 替换为您的 AdMob 发布商 ID。您还必须在 ads:testDevices 属性中添加您自己的设备 ID,才能在您的设备上获取测试广告。

我只是假设您实际上是在更改这些值……是的,您必须实际为这些值设置值。

于 2013-09-28T23:33:05.953 回答
-1

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

<dimen name="activity_horizontal_margin">0dp</dimen>
<dimen name="activity_vertical_margin">0dp</dimen>
于 2014-03-24T17:23:34.303 回答