クラッシュレポート(11/30)

Google Play Developer ConsoleにはクラッシュとANRという項目があります。
これはアプリのクラッシュ(強制終了)とANR(アプリが応答しなくなる) がどれくらい起こっているかのレポートを見るものです。

少し前にこのようなレポートが上がっていました。
タイトルにjava.lang.Error: FATAL EXCEPTION [main]と書かれていて、何が起こっているかわかりませんがまずそうな感じなのはわかりました。
原因は、
Caused by: java.lang.RuntimeException: Parcel android.os.Parcel@2bbfaf22: Unmarshalling unknown type code 7274595 at offset 12だと書いてありました。ParcelでUnmarshalling unknown type codeが起こったということです。

Parcelクラスはデータを保存できるオブジェクトを作れるもののようです。オブジェクトも保持できるとのことなので、内部的にはバイト列をもつクラスなのでしょう。(C#でいうとシリアライズ、デシリアライズに対応するのだと思います。)
このクラスのreadValueが失敗するわけですが、クラスの読み込みがうまくいっていないということです。そこまではわかったのですが、どんなオブジェクトが来ていて、どこで読み込みに失敗するかはまるでわかりません。下の方にある呼び出し元を見るとInterstitialというところから呼ばれているのがわかります。これはインタースティシャル広告の開始のことでコードはライブラリの中です。

もはやコードを見ることはできないので、検索して調べることにしました。
同じような問題に遭っている人がいるようでGoogleに質問していました。 議論を見てみると、最後にGoogleがバグを修正したとあります。
UnityにAdMobで広告を出している場合、Unity向けのパッケージを更新すればいいのか、google_play_servicesライブラリを更新すればいいのか、はたまたどちらも更新が必要なのかはわかりませんでした。

どうもすべての端末で起こるわけではないようでしかも11月頃から発生したことのようです。 それまで発生しなかったことを考えると広告配信のデータの形式が変わり、機種(Android version)によってはそれに対応していないということかもしれません。
インタースティシャルを使わなければ起きないでしょうが、使えないのは困ります。

google_play_servicesライブラリを更新するくらいしか手がなさそうです。