Android 8.0でAdMobがクラッシュする問題
Crashlyticsを眺めていたらAdMob周りでなにやらエラーが。 調べてみたところ、AdMobのインタースティシャル広告を使っているアプリでAndroid8.0以上だとクラッシュする、という問題だと分かりました。
StackTraceはこんな感じ。
Fatal Exception: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.sample/com.google.android.gms.ads.AdActivity}: java.lang.IllegalStateException: Only fullscreen activities can request orientation
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2822)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2822)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2897)
at android.app.ActivityThread.-wrap11(Unknown Source)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1598)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:251)
at android.app.ActivityThread.main(ActivityThread.java:6563)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
さらに調べてみると、SDK 27でActivityRecordクラスの実装に手が加わっていて起きている問題のようです。
いまのところ、「AdMobがSDK 27に対応するまではtargetSdkVersion 26
にする」しかなさそう。 いくつかworkaroundらしきものも提示されていたのですが、なぜそれでOKなのかが理解できず...
今回はおとなしくtargetSdkVersionを26に下げて対応しました。
AdMobのRelease Noteを見る限り、1~2か月に1回はバージョンアップされるようです。 前回の11.8.0が2017/12/18なので、もうちょっと待ったら次が来るはず。それまでの辛抱ですね。
参考URL
関連(するかもしれない)記事
おススメ