Код:
private fun initAds() {
val adRequest = PublisherAdRequest.Builder().build()
pavDetail.loadAd(adRequest)
pavDetail.adListener = object : AdListener() {
override fun onAdLoaded() {
super.onAdLoaded()
pavDetail.visibility = View.VISIBLE
}
override fun onAdFailedToLoad(i: Int) {
pavDetail.visibility = View.GONE
super.onAdFailedToLoad(i)
}
}
}
pavDetail
равен com.google.android.gms.ads.doubleclick.PublisherAdView
, и я получаю его синтетическим kotlinx из XML-макета.
Этот код иногда выдает IllegalStateException
, потому что pavDetail
загадочно обнуляется в onAdLoaded
& onAdFailedToLoad
.
Я сделал это pavDetail?.visibility
, чтобы предотвратить падение, но я не уверен, что это сработает, потому что я подозреваю, что сам вызов pavDetail
может вызвать это исключение,Помните, что это не NullPointerException
, это IllegalStateException
, дающее сообщение pavDetail must not be null
.
Поэтому я спрашиваю, почему pavDetail
становится нулевым и как предотвратить сбой.