Ошибка при показе Native Templates
Подключаю Native Templates: https://developers.google.com/admob/android/native/templates
Всё подключается и работает но если подключаю app:gnt_template_type="@layout/gnt_small_template_view"
Где-то один раз на тридцать вылазит ошибка как на скринах:
Хотя в gnt_small_template_view вообще нет MediaView. Вопросы в следующем:
- Можно ли оставить как есть, раз это модуль гугла или гугл будет ругаться?
- Раз это гугловский модуль могу ли я менять внешний вид этой View? Имеется ввиду снова, не будет ли ругаться гугл?
- Можно ли в целом делать View для NativeAds без MediaView? Если можно, я бы просто сделал аналог как в модуле(Native Templates) но из примера Native Advanced: https://developers.google.com/admob/android/native/advanced
- Что ещё не нравится, модуль хоть и скачанный с офф. сайта отстаёт по версии библиотеки от текущей
com.google.android.gms:play-services-ads:21.2.0и требует добавить в Gradle модуляcom.google.firebase:firebase-crashlytics-buildtools:2.9.2, иначе не компилируется, что тоже приводит к вопросу а не будет ли потом проблем у гугла с этим?
Подключаю всё вот так:
<com.google.android.ads.nativetemplates.TemplateView
android:id="@+id/my_template"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="8dp"
android:layout_marginBottom="32dp"
app:gnt_template_type="@layout/gnt_small_template_view" />
И в фрагменте в onCreateView:
private fun initNativeTemplate(view: ConstraintLayout) {
val template = view.findViewById<TemplateView>(R.id.my_template)
val adLoader: AdLoader = AdLoader.Builder(requireActivity(), "/6499/example/native").withAdListener(object :
AdListener() {
override fun onAdFailedToLoad(loadAdError: LoadAdError) {
super.onAdFailedToLoad()
Log.i("NativeAds", "onAdFailedToLoad")
}
override fun onAdLoaded() {
super.onAdLoaded()
Log.i("NativeAds", "onAdLoaded")
}
}).forNativeAd { nativeAd ->
val styles = NativeTemplateStyle.Builder().build()
template.setStyles(styles)
template.setNativeAd(nativeAd)
}.build()
adLoader.loadAd(AdRequest.Builder().build())
}

