必ず起こる現象という訳ではないのですが、Unityで作ったアプリをビルドしてAndroid端末でテスト(UnityでBuild and Run)しようとするとインストールに失敗してしまう事があります。
その場合、端末側には既にそのアプリの旧バージョンをストアからインストールしているという場合が多く(というか全てのケースでそうかも)、それを削除してから再度インストール(この場合、Unityのコンソールのエラーメッセージの中にあるadbのコマンドをそのままコマンドプロンプトに貼る事でインストール実行する事ができるので再度ビルドする手間が要らず便利です)すると、インストールには成功するのですが今度は起動しても即座にクラッシュしてしまいます。
monitor.batでクラッシュ時のログを確認してみると「E/InputDispatcher(2187): channel ‘3a4e32a ***.***.***/com.unity3d.player.UnityPlayerActivity (server)’ ~ Channel is unrecoverably broken and will be disposed! ~」とか「E/AndroidRuntime(19069): java.lang.Error: signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr unity」みたいなエラーが出ていました。
しかし調べてみれども有効な情報が無いので、試しに端末を再起動すると今度は上手く実行する事ができました。
すでにストアから旧バージョンのアプリをインストールしている状態から次バージョンのアプリをapkでインストールすると、端末に残っていたストアアプリに関する何らかのデータ(キャッシュ)との不整合でこういった事象が起こるのかもしれません。
コメント