如何在多个活动上实现admob横幅

问题描述 投票:0回答:1

我有一个有2个活动的应用程序,我用过Kotlin。我设法实现了一个admob横幅,主要活动没有任何问题,现在我想要第二个活动的另一个横幅,我该怎么做。我到处搜索,但我得到的解决方案是在两个活动上实现相同的横幅,但我想要的是每个活动都有自己的横幅。请注意我使用kotlin而不是Java,我没有java经验。

我的activity_main.xml看起来像这样

 <com.google.android.gms.ads.AdView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/adView"
            android:background="@mipmap/ic_launcher_background"
            ads:adSize="BANNER"
            ads:adUnitId="ca-app-pub-3940256099942544/6300978111"/>

我的MainActivity.kt看起来像这样

  super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    MobileAds.initialize(this, "ca-app-pub-3940256099942544~3347511713")
    adView.loadAd(AdRequest.Builder().build())

当我为第二个活动执行相同操作并运行应用程序时,第一个活动会运行并显示广告,现在当我继续进行下一个活动时,它会崩溃。它是如何完成的?

android android-activity kotlin admob banner
1个回答
0
投票

您收到以下错误的原因:

Java.lang.RuntimeException: Unable to start activity ComponentInfo{com.poc.com.eas/com.poc.com.eas.Main2Activity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.google.android.gms.ads.AdView.loadAd(com.google.android.gms.ads.AdRequest)' on a null object reference.

是因为你试图在你过去活动中不再活跃的同一个视图上调用loadAd()方法。因此,您需要做的是为每个活动上的横幅定义AdView,然后当您启动Main2Activity时,您需要调用adView2.loadAd(AdRequest.Builder().build())

© www.soinside.com 2019 - 2024. All rights reserved.