Admob - 无法在Android应用中显示横幅

时间:2014-08-26 09:29:29

标签: android admob

我正在尝试检查admob是如何工作的。

到时候我已经完成了包括这样的admob

清单文件

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.androidbannertutorial"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="9"
        android:targetSdkVersion="21" />
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >

         <meta-data android:name="com.google.android.gms.version"
               android:value="@integer/google_play_services_version"/>


        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>


         <activity android:name="com.google.android.gms.ads.AdActivity"
             android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>

    </application>

</manifest>

我的XML文件

    <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
              xmlns:ads="http://schemas.android.com/apk/res-auto"
              android:orientation="vertical"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              >

   <!-- <com.google.android.gms.ads.AdView 
        android:id="@+id/adView"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:layout_alignParentBottom="true"
  ads:adUnitId="ca-app-pub-4493208dfbf2258768/7749751738 "
  ads:adSize="BANNER"
   ads:loadAdOnCreate="true"/> -->


     <LinearLayout 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:id="@+id/ll"
        android:layout_alignParentBottom="true"
        />



</RelativeLayout>

我的主要活动类

package com.example.androidbannertutorial;

import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdSize;
import com.google.android.gms.ads.AdView;

import android.app.Activity;
import android.os.Bundle;
import android.widget.LinearLayout;

/**
 * A simple {@link Activity} that embeds an AdView.
 */
public class MainActivity extends Activity {
  /** The view to show the ad. */
  private AdView adView;

  /* Your ad unit id. Replace with your actual ad unit id. */
  private static final String AD_UNIT_ID = "ca-app-pub-4493sdf352258768/7749751738";

  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // Create an ad.
    adView = new AdView(this);
    adView.setAdSize(AdSize.BANNER);
    adView.setAdUnitId(AD_UNIT_ID);

    // Add the AdView to the view hierarchy. The view will have no size until the ad is loaded.
    LinearLayout layout = (LinearLayout) findViewById(R.id.ll);
    layout.addView(adView);

    // Create an ad request. Check logcat output for the hashed device ID to get test ads on a physical device.
    AdRequest adRequest = new AdRequest.Builder()
        /*.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
        .addTestDevice("INSERT_YOUR_HASHED_DEVICE_ID_HERE")*/
        .build();

    // Start loading the ad in the background.
    adView.loadAd(adRequest);
  }

  @Override
  public void onResume() {
    super.onResume();
    if (adView != null) {
      adView.resume();
    }
  }

  @Override
  public void onPause() {
    if (adView != null) {
      adView.pause();
    }
    super.onPause();
  }

  @Override
  public void onDestroy() {
    // Destroy the AdView.
    if (adView != null) {
      adView.destroy();
    }
    super.onDestroy();
  }
}

问:我们为什么要用这个.. ????????

.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
            .addTestDevice("INSERT_YOUR_HASHED_DEVICE_ID_HERE")

我已将 google_play_lib 添加到我的应用中。

我有我的addUnitId: ca-app-pub-4493438885ds9958768 / 7749751738

此处我的横幅广告未显示在应用内。

我收到的唯一错误是:找不到Google Play服务资源。检查项目配置以确保包含资源。

即使我已在应用中配置了

有人能帮我解决我需要做的事吗?

感谢。

更新

我在3-4小时的时间过后收到广告。无法理解为什么会出现这种情况?

2 个答案:

答案 0 :(得分:0)

您的代码是否要求广告?如果没有,那么您将无法获得任何广告。

如果您要请求广告,那么您会在日志中看到相关证据以及请求的结果。看看你的日志。

另请注意,android:layout_alignParentBottom对于LinearLayout

中的视图无效

答案 1 :(得分:0)

在您的代码中添加:

AdView adView = (AdView) view.findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder()
                .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
                .build();
        adView.loadAd(adRequest);