Android8.0 Oreoで起動ができなくなる

Unity 5.6.1f1を使用して作ったアプリをAndroid8.0で起動すると、最初に白い画面が表示されます。しばらく止まった後(初期化などしているはず)、ゲームが開始されます。
Android8.0では、白い画面になったまま進行しなくなりました。これはAndroid8.0だけで起こるバグらしく、Android8.0以前の端末で同じアプリをインストールしてみると問題ありませんでした。

対応するにはパッチを当てればよいそうです。Unityのパッチリリースのところにバグを直したと書いてあります。

この問題は権限の許可に関係するバグであり、それが許可されていないために止ってしまっているようでした。実機のログを見てみると、「Unable to query for permission: Fragment null must be a public static class to be  properly recreated from instance state.」というログが残っていました。

ゲームが起動できないというバグなため、致命傷になるでしょう。使用しているUnityのバージョンが古ければ発生しませんが、新しいバージョンだと必ず発生します。公式の修正履歴にはUnity5.6以降で再現するようにあります。

何度か試してみてわかったのですが権限をアプリ外で渡せば起動できました。Androidの設定からアプリの権限で対象のアプリに権限を付与してやると起動できるようになります。
ユーザーはそんなことしてまで遊んでくれないでしょうけど。

致命傷だと書きましたが、Android8.0はあまり普及してないのかもしれません。特に日本ではPixelが販売されてないため、Androidの最新バージョンはそんなに手元にないでしょう。そんなわけでAndroid8.0ユーザーが多いアプリだったら対応すれば良いかもくらいに思いました。

コメント

タイトルとURLをコピーしました