Joe*_*Joe 3 android admob kotlin google-ads-api
我正在努力将我的 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.")
}
Run Code Online (Sandbox Code Playgroud)
我的进口:
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
Run Code Online (Sandbox Code Playgroud)
为什么我会得到冗余 SAM 构造函数并且函数“onUserEarnedReward”从未被使用?
Nit*_*ain 11
原因是您正在高阶函数中创建函数而不是调用该函数。请尝试使用下面的代码。会起作用的
mRewardedAd?.show(this, OnUserEarnedRewardListener { rewardItem ->
val rewardAmount = rewardItem.amount
val rewardType = rewardItem.type
println("======================= TYPE - $rewardType /// AMOUNT - $rewardAmount")
}
Run Code Online (Sandbox Code Playgroud)
为了您更好地理解高阶函数,下面的代码也可以工作
mRewardedAd?.show(this, OnUserEarnedRewardListener {
fun onUserEarnedReward(rewardItem: RewardItem) {
val rewardAmount = rewardItem.amount
val rewardType = rewardItem.type
println("======================= TYPE - $rewardType /// AMOUNT - $rewardAmount")
}
onUserEarnedReward(it)
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1845 次 |
| 最近记录: |