编码:
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
中神秘地变为 null 。onAdLoaded
onAdFailedToLoad
我这样做是pavDetail?.visibility
为了防止崩溃,但我不确定这是否可行,因为我怀疑调用pavDetail
自身可能会引发该异常。请记住,这不是NullPointerException
一个IllegalStateException
给予信息pavDetail must not be null
。
因此,我问为什么pavDetail
会变成 null 以及如何防止崩溃。