Unityでビルドした時のエラーは別のパネルから詳細を確認できる
UnityのプロジェクトをAndroid端末用にビルドしようとしたら、以下のようなエラーが出て詰まってしまったのでメモ。
ちなみに自分はUnityは超初心者です。
いくつかメッセージが出ているけれど、正直このメッセージだけでは何が悪いのかがわからなくて、困っていました。
改めてメッセージをテキストとして拾ってみると以下のような感じ。しかし、これだとよくわからないですよね。Googleで検索しても自分の症状と一致している解決策だって確信できないです。
Starting a Gradle Daemon (subsequent builds will be faster)
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
CommandInvokationFailure: Gradle build failed.
Build completed with a result of 'Failed' in 56 seconds (56475 ms)
UnityEditor.BuildPlayerWindow+BuildMethodException: 4 errors
で、知らなかったんですけどこのメッセージは最初の1行を表示しているだけで、クリックすると詳細情報が別のパネルに展開されます!
ディスプレイのサイズなんかが原因で、見えていない状態でUnityのEditorが起動している場合もあるようで自分は最初全く気がつきませんでした。
カーソルをエラーサマリのした枠に合わせると、ドラッグ可能を意味するカーソルに切り替わるので、そこから引っ張ってあげるとエラーの詳細情報を表示するパネルが出現します。
さて、私の今回のエラーメッセージの詳細は以下のような感じ。/Users/{ユーザー名}/.android/debug.keystore
のところで詰まってしまったようです。
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':launcher:packageRelease'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
> com.android.ide.common.signing.KeytoolException: Failed to read key AndroidDebugKey from store "/Users/zoh/.android/debug.keystore": Invalid keystore format
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
ls -l
をしてみると、2022年の5月に作成されたファイルであることがわかりました。
これは今回のUnityのプロジェクトで作られたファイルではなく、おそらく以前にFlutterの開発をしていたときに作られたものだと思います。
今はもう不要なのでrm
コマンドで削除をし、再びUnityのプロジェクトをビルドしたら今度は起動できました!
$ ls -l /Users/zoh/.android/debug.keystore
-rw-r--r-- 1 zoh staff 2603 5 22 2022 /Users/zoh/.android/debug.keystore
$ rm /Users/zoh/.android/debug.keystore
エラー情報がサマリと詳細で別れている構成とは知りませんでした。
たしかにこの方が全てドドドッと表示されるよりも見やすいかもしれません。
この記事の環境情報
- Unity 2021.3.16f1
Unityに関する他の記事を読む
最近の記事を読む
- Flutterでcontextを使わずにlocale情報を取得する
- Cloud RunでIAPを有効にしようとしてハマったこと
- slimでtype='application/ld+json'のscriptタグを書く
- タグマネージャーでjsのloadイベントを発火させたいとき
- mysqlコマンドを実行してERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)と言われたら