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

播放AdMob视频广告时应用崩溃问题排查求助

解决AdMob广告点击后崩溃:Only fullscreen activities can request orientation

嘿,我之前也碰到过一模一样的问题!这是Android 8.0(API 26)及以上系统的兼容性限制导致的——系统不允许非全屏Activity强制设置屏幕方向,而AdMob的AdActivity刚好踩了这个坑。

下面是几个实测有效的修复方案,按优先级排序:

1. 优先升级AdMob SDK版本

Google早就修复了这个兼容性问题,只要把你的Google Mobile Ads SDK升级到较新的稳定版就行。打开你的Module级build.gradle,更新依赖:

implementation 'com.google.android.gms:play-services-ads:22.6.0' // 建议用最新稳定版

更新后同步项目,重新构建,大概率就能解决崩溃问题。

2. 手动配置AdActivity的Manifest属性

如果暂时没法升级SDK,或者升级后还是有问题,就去修改AndroidManifest.xml里的AdActivity声明:

  • 给它设置全屏主题,同时移除任何固定屏幕方向的属性
  • 确保添加必要的configChanges来适配屏幕变化

修改后的代码大概是这样:

<activity
    android:name="com.google.android.gms.ads.AdActivity"
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
    android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
    android:exported="false"/>

3. 检查宿主Activity的方向设置

如果你启动广告的那个Activity(也就是用户点击播放按钮的页面)强制设置了屏幕方向(比如android:screenOrientation="portrait"),但它本身不是全屏的,也可能触发这个问题。这种情况下要么去掉方向强制设置,要么把这个Activity改成全屏模式。

最后,要是做完以上步骤还是不行,试试清理项目缓存(Android Studio里点File -> Invalidate Caches / Restart),有时候旧的缓存文件会搞事情。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:27:55