首页 > 解决方案 > 奖励广告无效事件和 004 Kotlin 错误代码

问题描述

我尝试将奖励广告添加到我的项目中,但在观看了奖励广告后,fullScreenContentCallback 部分从未起作用。广告已观看,但未添加奖励。

我打开了一个新的空白项目并再次添加了代码。我再次尝试了 1 个按钮和一个 Texview 并得到了同样的错误。

MainActivity.kt

class MainActivity : AppCompatActivity() {
private  lateinit var binding: ActivityMainBinding
private var mRewardedAd: RewardedAd? = null
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)

    binding = ActivityMainBinding.inflate(layoutInflater)
    setContentView(binding.root)

    loadAd()

    binding.button.setOnClickListener {
        showAd()

    }
}

fun showAd() {


    if (mRewardedAd != null) {
        mRewardedAd?.show(this@MainActivity, OnUserEarnedRewardListener() {
            fun onUserEarnedReward(rewardItem: RewardItem) {
                var rewardAmount = rewardItem.amount
                var rewardType = rewardItem.getType()
                binding.reward.text = "Reward:2"
            }
        })
    } else {
        Log.d(TAG, "The rewarded ad wasn't ready yet.")
    }


}
fun loadAd() {

    var adRequest = AdRequest.Builder().build()

    RewardedAd.load(this@MainActivity,"ca-app-pub-3940256099942544/5224354917", adRequest, object : RewardedAdLoadCallback() {
        override fun onAdFailedToLoad(adError: LoadAdError) {
            //  Log.d(TAG, adError?.message)
            mRewardedAd = null

        }

        override fun onAdLoaded(rewardedAd: RewardedAd) {
            Log.d(TAG, "Ad was loaded.")
            mRewardedAd = rewardedAd
        }
    })

    mRewardedAd?.fullScreenContentCallback = object: FullScreenContentCallback() {
        override fun onAdShowedFullScreenContent() {
            // Called when ad is shown.
            Log.d(TAG, "Ad was shown.")
            //  currentJoker = 1
            binding.reward.text = "Reward:2"
            //  binding.jokerValue.text="1"
            //  binding.jokerLayout.setBackgroundResource(R.drawable.jokericon)
        }

        override fun onAdFailedToShowFullScreenContent(adError: AdError?) {
            // Called when ad fails to show.
            Log.d(TAG, "Ad failed to show.")
        }

        override fun onAdDismissedFullScreenContent() {
            // Called when ad is dismissed.
            // Set the ad reference to null so you don't show the ad a second time.
            Log.d(TAG, "Ad was dismissed.")
            mRewardedAd = null
        }
    }
}

}

错误代码

E/Ads: Invalid event ID: null
    java.lang.NumberFormatException: null
        at java.lang.Long.parseLong(Long.java:557)
        at java.lang.Long.parseLong(Long.java:636)
        at com.google.android.gms.internal.ads.zzcaw.zzw(com.google.android.gms:play-services-ads@@20.2.0:3)
        at com.google.android.gms.internal.ads.zzcaw.zzr(com.google.android.gms:play-services-ads@@20.2.0:6)
        at com.google.android.gms.internal.ads.zzdfe.zzf(com.google.android.gms:play-services-ads@@20.2.0:3)
        at com.google.android.gms.internal.ads.zzcxk.zza(com.google.android.gms:play-services-ads@@20.2.0:1)
        at com.google.android.gms.internal.ads.zzdbc.run(com.google.android.gms:play-services-ads@@20.2.0:1)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
        at java.lang.Thread.run(Thread.java:919)
W/bileapps.adtes: Accessing hidden method Lsun/misc/Unsafe;->compareAndSwapObject(Ljava/lang/Object;JLjava/lang/Object;Ljava/lang/Object;)Z (greylist, linking, allowed)
W/bileapps.adtes: Accessing hidden method Lsun/misc/Unsafe;->compareAndSwapObject(Ljava/lang/Object;JLjava/lang/Object;Ljava/lang/Object;)Z (greylist, linking, allowed)
D/SurfaceUtils: disconnecting from surface 0xbc864808, reason disconnectFromSurface
W/Ads: #004 The webview is destroyed. Ignoring action.
I/chatty: uid=10135(com.etcmobileapps.adtest) identical 6 lines
W/Ads: #004 The webview is destroyed. Ignoring action.

错误代码图片

MainActivity.xml

MainActivity.xml 图像

标签: kotlinadmobadmob-rewardedvideoadrewardedvideoad

解决方案


推荐阅读