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

How to implement admob banner on multiple activities

我有一个包含 2 个活动的应用程序,我使用的是 Kotlin。我设法在主 activity 上实现了一个没有问题的 admob 横幅,现在我想在第二个 activity 上使用另一个横幅,我该怎么做。我到处搜索,但我得到的解决方案是在两个活动中实施相同的横幅,但我想要的是每个 activity 都有自己的横幅。请注意,我使用的是 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())

当我对第二个 activity 和 运行 应用执行相同操作时,第一个 activity 运行 会显示广告,现在当我继续前进时到下一个 activity 它崩溃了。具体是怎么做到的?

您收到以下错误的原因:

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.

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