Unity である程度ゲームが出来上がってきて、さてそろそろ Android 実機でテストするか!と思った矢先、Android でビルドできないエラーに非常に悩まされました。
具体的には以下のようなエラーが出ました。
Android SDK is outdated
InvalidOperationException: Cannot start process because a file name has not been provided.
AndroidPlayer\SDK\tempToolsDir' is denied.
意味的には Android SDK にアクセスできない、プロセスが開始できないというような意味となります。
SDK のフォルダーを見ると「tempToolsDir」というフォルダーはありませんでした。作ってみればエラーは無くなりますが、動作はしないままです。
Google で色々調べて ChatGPT にも聞いてみましたが、解決策は見つかりませんでした。
原因の仮説
開発初期の頃は正しくビルドできていました。それが後期になってビルドができないという事になります。
思い当たる節は、開発中盤で Unity がクラッシュして Unity を再インストールしたという点です。その点で不整合が発生したのではないか?
ゴミが残らないよう古い Unity はフォルダーから何まで削除して再インストールしましたが、もしやと思い次のような施策を行いました。
別ドライブへのインストール
最初は C ドライブに Unity をインストールしており、同じように C ドライブに再インストールした事でも問題が再発する事から、試しに違うドライブに Unity をインストールしてみました。
するとエラーが発生しなくなり、ビルドが出来たのでした。
古い Unity が消えきってなかったという事でしょうか。綺麗にアンイストールする方法もあると思いますが、とりあえずビルドができたので安心。