在Fragment中显示Admob横幅时出错

时间:2015-09-24 21:38:48

标签: java android android-layout android-fragments admob

我熟悉在我的应用中实现Admobs,但是我很难将代码从“活动”更改为“碎片”。

我收到了NullPointerException。我相信使用getView()可能会导致我的问题。

Admob代码:Fragment

//CREATE BANNER ADD
    private void createAdmobBanner() 
    {
        // Create an ad.

        adView = (com.google.android.gms.ads.AdView) getView()
                .findViewById(R.id.adView);
        AdRequest adRequest = new AdRequest.Builder()

        // Add a test device to show Test Ads
                 .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
                // .addTestDevice("B3827F13FB335337F4CA0F350B78A866")
                        .build();


                // Load ads into Banner Ads
            adView.loadAd(adRequest);

    }

XML Admob布局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:id="@+id/adViewHolder"
android:layout_width="fill_parent"
android:layout_height="@dimen/ad_bottom_height"
android:layout_marginTop="1dp"

android:gravity="center_vertical"
android:orientation="horizontal" >

<com.google.android.gms.ads.AdView
    android:id="@+id/adView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    ads:adSize="SMART_BANNER"
    ads:adUnitId="ca-app-pub-xxxx/xxxx"
  />

</LinearLayout>


 <RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="@dimen/bottom_bar_height"

    android:orientation="horizontal" >

 <Button
     android:id="@+id/button1"
    android:text="Refresh Scores"
     android:layout_height="wrap_content"
     android:layout_width="fill_parent"
     android:textSize="11dp"
android:layout_weight="1"
      />

注意:我使用... include layout =“@ layout / admob_ad”/&gt;在我的片段布局xml中。

代码错误:

09-24 22:04:02.429:E / AndroidRuntime(5375):java.lang.NullPointerException:尝试调用虚拟方法'void com.google.android.gms.ads.AdView.loadAd(com.google。在一个空对象引用上的'android.gms.ads.AdRequest)' 09-24 22:04:02.429:E / AndroidRuntime(5375):at info.androidhive.slidingmenu.ChampionsFragment.createAdmobBanner(ChampionsFragment.java:391)

1 个答案:

答案 0 :(得分:0)

当我在资源文件中仔细检查时,我遇到了类似的问题 我的活动有两个资源文件:

  1. \res\layout\activity_main_lauch.xml
  2. \res\layout-v21\activity_main_lauch.xml
  3. 我正在修改单个文件,因此它抛出了错误。当我在两个文件中应用更改时,它开始工作。