You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity插屏广告在Fragment中正常运行但Activity中无法显示如何解决

问题排查与解决方案

你使用的插屏广告调用代码如下:

if (UnityAds.isReady(constants.interstitial)) {
    Log.d(TAG, "showAd: ad ready and showing...")
    UnityAds.show(activity, constants.interstitial)
}

Fragment中广告运行正常截图
完全相同的代码在Activity中运行异常:
Activity中广告运行异常截图
请对照以下几点排查问题:

  • 初始化时机不匹配
    Fragment的生命周期晚于宿主Activity的初始化,因此你在Fragment中调用广告代码时,UnityAds已经完成了初始化,isReady可以正常返回状态。如果在Activity中你把这段代码放在onCreate、onStart等生命周期早期节点调用,此时UnityAds还未完成初始化,isReady会一直返回false,广告无法弹出。建议将调用逻辑移到Activity的onResume之后执行,或者给UnityAds设置初始化完成监听器,在回调中再判断广告就绪状态。
  • 上下文参数错误
    Fragment中使用的activity参数是已经完成初始化的宿主Activity实例,复制到Activity中后如果错误传入了Application上下文、或者未完全初始化的Activity实例,会导致UnityAds无法正常挂载广告页面。请将调用代码中的上下文参数替换为当前Activity实例,示例:
// 此处替换为你当前Activity的类名即可
UnityAds.show(this@YourActivityName, constants.interstitial)
  • 线程调用不符合要求
    UnityAds.isReady和UnityAds.show方法必须在Android UI线程调用,如果在Activity中你是在子线程中执行这段代码,会导致调用不生效。
  • Manifest配置缺失
    请检查承载广告的Activity是否在AndroidManifest.xml中配置了UnityAds要求的android:configChanges属性,否则广告页面加载时触发的配置变更会导致Activity重建,广告加载中断。

内容的提问来源于stack exchange,提问作者Arun Goenka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 14:54:02