#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. Не будет ли это дублировать вызов для одного и того же рекламного блока? увеличивает количество запросов на рекламу и уменьшает количество показов?