Android環境にしたらビルドが通らなくなった場合(インストールの確認)
UnityでAndroid向けにアプリ開発をする場合、Unity 用の Android SDK に内蔵されている Gradle というビルドシステム(コンパイラ・リンカ含む)を使用します。
Android の Gradle - Unity マニュアル
この Gradle によって、Unityに置いてあるJavaファイルがビルド(コンパイル・リンク等)されるようになります。
Java や Kotlin のソースファイルをプラグインとして使用 - Unity マニュアル
Unity の Android環境でビルドができるようになるまでに、いくつかつまづくポイントがあったのでまとめました。
Android環境にできるか確認
Android環境にできるか確認するには、File > Build Settings で、Android を選択します。
Android 用のビルド環境が整っていないと、以下の画面が表示されます。
この場合、Unity Hub から Android 用のビルド環境をインストールします。ただし、上の画面からからUnity Hub を開くとうまくいかないことがあるようです。
インストールの仕方は、以下にまとめました。
tomo-mana.hatenablog.com
コンパイルできない
JDK が見つからない(バージョンが合っていない)
Android SDK は、使用できる Java JDK のバージョンが限られています。
基本的に、Unity Hub からのインストールでAndroid SDK/NDK と Java JDK のバージョンを揃えます。
以下のエラーが出た場合、Android SDK に対して Java JDK のバージョンが合っていないと思われます。
Preference を表示すると、以下のようなエラー画面が出ています。
上記に示されている JDK、Android SDK、Android NDK の各ファイルパスに飛んでみて、ファイルが存在しなかったら、Unity Hub からインストールが必要です。
上記エラーが出た時の対処は、以下を参考にしました。
qiita.com
インストールしているのにファイルが無い場合は、さらに以下を参照します。
Java JDK、Android SDK がうまくインストールされない
たとえば、以下の警告が出る場合、Java JDK がうまくインストールされなかったか、存在しない可能性があります。
Java JDK、Android SDK がインストールされたかどうかは、Unity Hub→インストール→「」→「モジュールを加える」で確認できる…ことになっています。
この「モジュールを加える」画面は、正常にインストールされていなくてもインストール済になっていることがあり、元のファイルがちゃんと存在しているか確認する必要があります。
元のファイルが存在するか確認するには、Edit→Preferenceから、External Tools を表示します。
Java JDK、Android SDK、NDK それぞれの欄の「Copy Path」をクリックしてパスをコピーし、ファイルエクスプローラでそれぞれのアドレスを確認します。
正常にインストールされている場合、それぞれのアドレスに何らかのファイルが存在しています。
Android NDK(ファイル多いため抜粋)
また、元のファイルが存在していなかった場合、Unity Hub から再インストールすることができません。かといって手動で持ってくることもできません。仕方がないのでUnity Hub まで含めて全アンインストールが必要になります。
(JDK/SDKのインストールに失敗したら、Unity Hubごとアンインストール)
Unity Hub まで含めたアンインストール・再インストール手順は、以下の記事を参考にしました。
Java JDK用のパスが通ってない
以下の警告が出る場合は、JAVA_HOME へのパスが通っていない可能性があります。
Unity(Gradleビルドシステム)に限らず、Java JDKを使う場合、JAVA_HOME と Path にパスを通す必要があります。
環境設定の出し方はWindowsのバージョンによって変わるので、個々のサイトで探す必要があります。
環境設定では、以下のように設定します。
それぞれ、「システム環境変数」側に以下の環境変数を追加します。
JAVA_HOME:上で取得したパス
Path:上で取得したパス\bin
JAVA_HOME と Path を修正した後、Unity Hub を再起動させる必要があります。Unity Hub を画面上で落としただけでは再起動したことにならないようです。手っ取り早いのはPC電源再起動でした。
(参考)
Unity2019で「Gradle failed to fetch dependencies.」というエラーがでる
私の場合、この2つでつまづきました。
他にもいろいろあるかもしれません。