AdMob无法在应用中运行

时间:2015-02-28 20:03:02

标签: android google-play admob

所以,我的问题是AdMob横幅广告无法在我的应用中运行,我的确如此完成:https://developers.google.com/mobile-ads-sdk/docs/admob/android/quick-start

当我在手机上启动应用程序时根本没有横幅,我可以做些什么来解决这个问题?我的发布商ID正确,我多次检查过。

这是我的布局代码:

<?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"
    android:background="#ff055500"
    android:paddingLeft="50dp"
    android:paddingRight="50dp"
    android:paddingBottom="5dp"
    android:clickable="false"
  >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:text="@string/name"
            android:id="@+id/textView"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="65dp"
            android:textColor="#ffffffff"
            android:textSize="27sp"/>


        <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/btnGetAdviceMain"
            android:id="@+id/btnGetAdvice"
            style="?android:attr/borderlessButtonStyle"
            android:layout_below="@+id/textView"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="55dp"
            android:onClick="clickOnGetAdvice"
            android:background="@drawable/shape_selector"
            android:textColor="#ffffffff"/>


        <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/btnAbout"
            style="?android:attr/borderlessButtonStyle"
            android:id="@+id/btnAbout"
            android:onClick="clickOnAbout"
            android:background="@drawable/shape_selector"
            android:textColor="#ffffffff"
            android:layout_below="@+id/btnGetAdvice"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_marginTop="5dp" />

        <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@string/btnRate"
            style="?android:attr/borderlessButtonStyle"
            android:id="@+id/btnRate"
            android:background="@drawable/shape_selector"
            android:textColor="#ffffffff"
            android:layout_below="@+id/btnAbout"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_marginTop="5dp"
            android:onClick="clickOnRateApp" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/quote"
            android:id="@+id/quote"
            android:textColor="#ffffffff"
            android:textSize="16sp"
            android:layout_marginTop="42dp"
            android:layout_below="@+id/btnRate"
            android:layout_centerHorizontal="true" />

        <com.google.android.gms.ads.AdView
            android:id="@+id/adView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            ads:adUnitId="@string/banner_publisher_id"
            ads:adSize="SMART_BANNER"
            android:layout_alignParentBottom="true"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true">
            </com.google.android.gms.ads.AdView>

</RelativeLayout>

这里的方法OnCreate():

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

我在Manifest中也有这个:

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

2 个答案:

答案 0 :(得分:2)

1检查活动: Folowing代码应放在onCreate方法中:

AdView adView = (AdView) this.findViewById(R.id.yourAdView);
AdRequest adRequest = new AdRequest.Builder()
        .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
        .addTestDevice("Your test device hash") // omit if none
        .build();
adView.loadAd(adRequest);

2检查布局: 以下代码应放在您的活动&lt; layour xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:ads="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentEnd="false"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:id="@+id/linearLayout">

    <com.google.android.gms.ads.AdView
        android:id="@+id/adView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        ads:adSize="BANNER"
        ads:adUnitId="Your unit id"></com.google.android.gms.ads.AdView>
</LinearLayout>

3选中AndroidManifest.xml:以下权限应声明以上 application标记:

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

答案 1 :(得分:0)

爵士;它可以在某些设备上工作,而不是在某些设备上(320dp宽的设备),因为当你包括填充等时,没有像你所说的那样足够的空间。 请从RelatvieLayout

中删除此代码
android:paddingLeft="50dp"
android:paddingRight="50dp"
android:paddingBottom="5dp" // you can ignore this one

所以你现在有了

<?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"
  android:background="#ff055500"
  android:paddingBottom="5dp" // you can delete this one
  android:clickable="false"
>

Official proof here