在 Admob 20.1.0 中永远不会调用 onUserEarnedReward
Posted
技术标签:
【中文标题】在 Admob 20.1.0 中永远不会调用 onUserEarnedReward【英文标题】:onUserEarnedReward is never called in Admob 20.1.0 【发布时间】:2021-06-08 17:14:42 【问题描述】:我正在努力将我的 Kotlin 应用程序转换为 Admob 20.1.0。在集成奖励广告时遇到问题。
问题是 onUserEarnedReward
永远不会被调用。我目前无法用他们解锁的内容来奖励用户。我下面的代码放在onClickListener
中的AppCompatActivity()
中
if (mRewardedAd != null)
mRewardedAd?.show(this, OnUserEarnedRewardListener // Redundant SAM-constructor
fun onUserEarnedReward(rewardItem: RewardItem) // Function "onUserEarnedReward" is never used
val rewardAmount = rewardItem.amount
val rewardType = rewardItem.type
println("======================= TYPE - $rewardType /// AMOUNT - $rewardAmount")
// This never gets called.
)
else
println("=======================The rewarded ad wasn't ready yet.")
我的进口:
import com.google.android.gms.ads.*
import com.google.android.gms.ads.rewarded.RewardItem
import com.google.android.gms.ads.rewarded.RewardedAd
import com.google.android.gms.ads.rewarded.RewardedAdLoadCallback
import com.google.android.gms.ads.OnUserEarnedRewardListener
为什么我得到冗余 SAM 构造函数和从未使用过“onUserEarnedReward”函数?
【问题讨论】:
这对您有帮助吗? ***.com/questions/40187101/… @JackChampagne - 一切都在 AdMob 端正确配置。在我升级到 20.1.0 之前,奖励广告运行良好 【参考方案1】:原因是您在高阶函数中创建一个函数而不是调用该函数。 请尝试以下代码。它会工作
mRewardedAd?.show(this, OnUserEarnedRewardListener rewardItem ->
val rewardAmount = rewardItem.amount
val rewardType = rewardItem.type
println("======================= TYPE - $rewardType /// AMOUNT - $rewardAmount")
为了您更好地理解下面的代码中的高阶函数
mRewardedAd?.show(this, OnUserEarnedRewardListener
fun onUserEarnedReward(rewardItem: RewardItem)
val rewardAmount = rewardItem.amount
val rewardType = rewardItem.type
println("======================= TYPE - $rewardType /// AMOUNT - $rewardAmount")
onUserEarnedReward(it)
)
【讨论】:
以上是关于在 Admob 20.1.0 中永远不会调用 onUserEarnedReward的主要内容,如果未能解决你的问题,请参考以下文章