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)