微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法加载Android测试广告

如何解决无法加载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 举报,一经查实,本站将立刻删除。