当前位置: 首页 > news >正文

Android google admob Timeout for show call succeed 问题解决

项目场景:

项目中需要接入 google admob sdk 实现广告商业化


问题描述

在接入Institial ad 时,onAdLoaded 成功回调,但是onAdFailedToShowFullScreenContent 也回调了错误信息 “Timeout for show call succeed.”

        InterstitialAd.load(activity,"ca-app-pub-3940256099942544/1033173712",AdRequest.Builder().build(),object : InterstitialAdLoadCallback() {override fun onAdLoaded(interstitialAd: InterstitialAd) {super.onAdLoaded(interstitialAd)Log.i("nh_ad", "admob interstitial onAdLoaded")// 加载成功interAd = interstitialAd// 设置广告事件回调interAd?.fullScreenContentCallback = object : FullScreenContentCallback() {override fun onAdImpression() {super.onAdImpression()Log.i("nh_ad", "admob interstitial onAdImpression")}override fun onAdShowedFullScreenContent() {super.onAdShowedFullScreenContent()Log.i("nh_ad", "admob interstitial onAdShowedFullScreenContent")}override fun onAdClicked() {super.onAdClicked()Log.i("nh_ad", "admob interstitial onAdClicked")}override fun onAdDismissedFullScreenContent() {super.onAdDismissedFullScreenContent()Log.i("nh_ad", "admob interstitial onAdDismissedFullScreenContent")interAd = null}override fun onAdFailedToShowFullScreenContent(adError: AdError) {super.onAdFailedToShowFullScreenContent(adError)Log.e("nh_ad", "admob interstitial onAdFailedToShowFullScreenContent error:${adError.message}")interAd = null}}}override fun onAdFailedToLoad(loadAdError: LoadAdError) {super.onAdFailedToLoad(loadAdError)Log.e("nh_ad", "admob interstitial onAdFailedToLoad error:${loadAdError.message}")interAd = null// 加载失败}})

原因分析:

问题困扰很久, 使用官网 Demo 可以正常显示结果的,网络上搜索不到相关问题。

后来对比了下 官网 Demo 和自己项目的差异,不同点在于我项目是在子进程加载和显示广告的,

尝试去掉子进程后,果然不再报错,基本可以确定这个就是和多进程有关。。

但是搜索 Admob sdk 技术文档,里面并没有接口是设置支持多进程的。。又陷入了无助中

于是我翻阅了 Admob sdk 的源码,看到了用于展示广告的 AdActivity 在 Sdk AndroidManifest 里的声明为:

 猜想,能否在自己App的 AndroidManiest里重新声明这个AdActivity 并且加上支持多进程属性?

解决方案:

在 App 的 AndroidManifest 里重新声明 Admob 的广告 Activity,增加支持多进程属性 android:multiprocess = "true"

        <activityandroid:name="com.google.android.gms.ads.AdActivity"android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"android:exported="false"android:multiprocess="true"android:theme="@android:style/Theme.Translucent"tools:ignore="MissingClass" />

这个坑困扰了大半天,特意记录下~

http://www.lryc.cn/news/113743.html

相关文章:

  • EFLFK——ELK日志分析系统+kafka+filebeat架构
  • C# MVC controller 上传附件及下载附件(笔记)
  • 安装element-plus报错:Conflicting peer dependency: eslint-plugin-vue@7.20.0
  • 【操作系统】进程和线程对照解释
  • 4用opencv玩转图像2
  • Swagger的使用
  • python高阶技巧
  • Linux和Windows安装MySQL服务
  • Vue3 第四节 自定义hook函数以及组合式API
  • 门面模式(C++)
  • ASP.NET Core SignalR
  • auto-changelog的简单使用
  • map 比较(两个map的key,value 是否一样)
  • LayUI之入门
  • 【Linux】Linux下git的使用
  • QT读写配置文件
  • 【计算机网络】12、frp 内网穿透
  • Pytest 重复执行用例插件----pytest-repeat
  • 【软件工程】5 ATM系统测试
  • opencv读取MP4文件和摄像头数据
  • Qt实现自定义QDoubleSpinBox软键盘
  • 小研究 - 微服务系统服务依赖发现技术综述(一)
  • 2023-08-07力扣今日八题
  • Segment Anything【论文翻译】
  • 银河麒麟QT连接DM8数据库
  • 并发编程1:线程安全性概述
  • (论文复现)DeepAnt模型复现及应用
  • 【机器学习】在 MLOps构建项目 ( MLOps2)
  • 【MySQL】聚合函数与分组查询
  • conda 环境 numpy 安装报错需要 Microsoft Visual C++ 14.0