无法加载Android测试广告

问题描述

我正在使用OI必须处理广告并使用测试ID加载广告的Android应用程序,我已经在代码中实现了所有与广告相关的工作,但是由于我在移动设备中运行应用程序而无法加载广告。 我已按照教程进行操作,并在其中添加了Plays服务和Internet许可... 我还在Android清单中添加了测试ID

这是我用来在应用程序中加载广告的代码 。 我声明了权限的清单文件和权限的元数据:

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="com.android.vending.BILLING" />
<uses-permission android:name="android.permission.INTERNET"/>


<Meta-data
        android:name="com.google.android.gms.ads.APPLICATION_ID"
        android:value="ca-app-pub-3940256099942544~3347511713"/>

这是我要加载广告的主要活动,看起来像...我在onCreate上初始化了测试ID

MobileAds.initialize(this,"ca-app-pub-3940256099942544~3347511713")
loadAdmobNativeAd()

这里是加载广告的加载方法

internal var nativeAd: UnifiednativeAd? = null

private fun loadAdmobNativeAd() {
    val frameLayout: FrameLayout = findViewById(R.id.native_)

    val builder = AdLoader.Builder(this,"ca-app-pub-3940256099942544/2247696110")

    builder.forUnifiednativeAd { unifiednativeAd ->
        // OnUnifiednativeAdLoadedListener implementation.
        // You must call destroy on old ads when you are done with them,// otherwise you will have a memory leak.
        if (nativeAd != null) {
            nativeAd?.destroy()
        }
        nativeAd = unifiednativeAd
        val adView = layoutInflater
            .inflate(R.layout.native_ad_layout,null) as UnifiednativeAdView
        populateUnifiednativeAdView(unifiednativeAd,adView)
        frameLayout.removeAllViews()
        frameLayout.addView(adView)
    }

    builder.withAdListener(object: AdListener() {
        override fun onAdFailedToLoad(p0: Int) {
            Log.d(
                "checkads","error1"
            )
            super.onAdFailedToLoad(p0)
        }


    })


    val adLoader = builder.build()

    adLoader.loadAd(AdRequest.Builder().build())


}

这是我的填充方法,用于填充声明的广告xml属性

 private fun populateUnifiednativeAdView(
    unifiednativeAd: UnifiednativeAd?,adView: UnifiednativeAdView
) {adView.headlineView = adView.findViewById(R.id.ad_headline)
    adView.advertiserView = adView.findViewById(R.id.ad_advertiser)
    adView.mediaView = adView.findViewById(R.id.ad_media)
    adView.callToActionView = adView.findViewById(R.id.btn_install)
    adView.iconView = adView.findViewById(R.id.adv_icon)
    adView.bodyView = adView.findViewById(R.id.ad_body)
    if (unifiednativeAd != null) {
        adView.mediaView.setMediaContent(unifiednativeAd.mediaContent)
    }
    if (unifiednativeAd != null) {
        adView.ad_headline.text = unifiednativeAd.headline
    }
    if (unifiednativeAd != null) {
        if (unifiednativeAd.body == null) {
            adView.bodyView.visibility = View.INVISIBLE
        } else {
            adView.ad_body.text = unifiednativeAd.body
            adView.bodyView.visibility = View.VISIBLE
        }
        if (unifiednativeAd.advertiser == null) {
            adView.advertiserView.visibility = View.INVISIBLE
        } else {
            adView.ad_advertiser.text = unifiednativeAd.advertiser
            adView.advertiserView.visibility = View.VISIBLE
        }
        if (unifiednativeAd.icon == null) {
            adView.iconView.visibility = View.GONE
        } else {
            adView.iconView.visibility = View.VISIBLE
        }}
    adView.setNativeAd(unifiednativeAd)
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)