我有一个使用Admob SDK的应用,用于显示插页式广告(全屏广告).
最近谷歌已经更新了SDK以及许多其他东西(构建工具,gradle插件,IDE等),包括admob(firebase ads).
compile 'com.google.firebase:firebase-ads:11.4.2'
Run Code Online (Sandbox Code Playgroud)
更新后,我注意到每当应用尝试展示插页式广告时,它都会崩溃.
崩溃日志是这样的:
10-28 14:01:01.394 4523-4523/... I/Ads: Ad opening.
10-28 14:01:01.400 1606-2154/? E/ActivityManager: Activity Manager Crash. UID:10080 PID:4523 TRANS:63
java.lang.IllegalStateException: Only fullscreen activities can request orientation
at com.android.server.am.ActivityRecord.setRequestedOrientation(ActivityRecord.java:2189)
at com.android.server.am.ActivityManagerService.setRequestedOrientation(ActivityManagerService.java:4975)
at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:1101)
at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2927)
at android.os.Binder.execTransact(Binder.java:697)
10-28 14:01:01.403 4523-4523/... D/AndroidRuntime: Shutting down VM
10-28 14:01:01.406 4523-4523/... E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity ComponentInfo{.../com.google.android.gms.ads.AdActivity}: java.lang.IllegalStateException: Only fullscreen activities can request orientation
Run Code Online (Sandbox Code Playgroud)
事情是,它之前工作得很好.现在我不确定是什么导致它发生.
在网上搜索,我没有看到任何谈论"只有全屏活动可以请求定位"的内容.
我在清单中所拥有的东西有点陈旧,可能不再需要了:
<activity
android:name="com.google.android.gms.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
android:theme="@android:style/Theme.Translucent"/>
Run Code Online (Sandbox Code Playgroud)
我说它可能不需要,因为我不能在教程中看到它,即使我记得我过去做过: