Android Kotlin - AdView adSize: val不能重新分配


MobileAds.initialize(this) { }
val adViewBottom = AdView(this)
adViewBottom.adSize = AdSize.BANNER

这在我更新库之前是有效的,现在我得到

val cannot be reassigned

adViewBottom.adSize

val改为var并不能解决问题

Admob 21.0.0改变了直接设置广告大小的方式。

可以使用setAdSize方法。
MobileAds.initialize(this) { }
val adViewBottom = AdView(this)
adViewBottom.setAdSize(AdSize.BANNER)
// adViewBottom.setAdSize(AdSize.FULL_BANNER)
// adViewBottom.setAdSize(... Anchored adaptive banner size ...)

如果您将adMob依赖关系更新为implementation 'com.google.android.gms:play-services-ads:21.1.0'并且您的意图是使用锚定自适应横幅,很可能您会得到该错误。这是对我有用的解决办法。

MobileAds.initialize(this) {}
adView = AdView(this)//instance of adView
//get width of a device from window manager
val display = windowManager.defaultDisplay
val outMetrics = DisplayMetrics()
display.getMetrics(outMetrics)
val density = outMetrics.density
var adWidthPixels = adContainerView.width.toFloat()
if (adWidthPixels == 0f) {
adWidthPixels = outMetrics.widthPixels.toFloat()
}
val adWidth = (adWidthPixels / density).toInt()

adView.setAdSize(AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, adWidth))

按此方式设置

adViewBottom.setAdSize(AdSize.BANNER)

最新更新