Как внедрить баннер admob в нескольких действиях

#android #android-activity #kotlin #admob #banner

#Android #android-активность #kotlin #admob #баннер

Вопрос:

У меня есть приложение с 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())
  

Когда я делаю то же самое для второго действия и запускаю приложение, запускается первое действие и показывается реклама, теперь, когда я перехожу к следующему действию, происходит сбой. как именно это делается?

Комментарии:

1. Вы хотите интегрировать рекламные баннеры Google AdMob для всех ваших действий? Это то, что вы имели в виду?

2. Да, это именно то, что я хочу сделать.

3. Разве вы не можете сделать то же самое, что вы сделали для Mainactivity.

4. позвольте мне попробовать еще раз, это выдавало эту ошибку:

5. java.lang.RuntimeException: Не удается запустить activity ComponentInfo{com.poc.com.eas/com.poc.com.eas.Main2Activity}: java.lang. Исключение NullPointerException: попытка вызвать виртуальный метод ‘void com.google.android.gms.ads.AdView.loadAd (com.google.android.gms.ads.AdRequest)’ для ссылки на нулевой объект. Это ошибка, которую я получаю после выполнения того же, что и основное действие

Ответ №1:

Причина, по которой вы получаете следующую ошибку:

 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())

Комментарии:

1. Не будет ли это дублировать вызов для одного и того же рекламного блока? увеличивает количество запросов на рекламу и уменьшает количество показов?