Android 8.0でAdMobがクラッシュする問題

2018/01/06

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




関連(するかもしれない)記事


おススメ