初めての記事投稿なので稚拙な部分がありますがご了承ください。
UnityでXREALデバイス向けにゲーム開発をしていたところ、ビルドエラーが出るようになったのでその対処法と、実行してみて何も変わらなかったことなどを共有します。
かなり長い時間をかけて解決に取り組んでいたなおかつ、メモを適宜とっていなかったせいで何を境目にビルドエラーが出るようになったのか覚えてないです。すみません、、、。
実行環境
Windows11
Unity 2021.3.29f1
NRSDKForUnityAndroid_2.2.1
ImmersalSDKv1_20_0
Shopify SDK for Unity
解決方法:Gradleをアップグレードした
こちらの記事を参考にさせていただきました。
https://qiita.com/3BMKATYWKA/items/467c6c9a57fd8ace7948
必要なGradleバージョンを確認する。
Unityのコンソール画面の中に、必要なGradleバージョンが書かれているはず。
「必要なバージョンは~~なのに、あなたのGradleバージョンは~~ですよ」と。
私の場合はGradle v6.7.1が必要だと言われていました。
Gradleをダウンロードする
こちらから必要なGradleをダウンロードします。
https://gradle.org/releases/
binary-onlyかcompleteを選べますが、completeを選びます。
Gradleを解凍してUnityフォルダに移動する
解凍したフォルダを、旧Gradleが置かれているフォルダに移動させます。
私の場合は
(somepath)\2021.3.29f1\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\gradleに置きました。
gradleフォルダの中にgradle-6.7.1を入れたということです。
UnityのGradleはデフォルトではProgram Files以下のパスに入っています。
例
(somepath)\Program Files\Unity\Hub\Editor
2021.3.29f1\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\gradle
PrefencesからGradleのパスを指定しなおす
Edit > Prefencesを開きます。
Enternal Toolsの項目を開きます。
ここにはJDKやAndroid SDKなどのAndroid向けビルドに必要なSKDのパスが保存されています。
ここで、Gradleのパスを指定し直します。
✅️Gradle Installed with Unity(recommended)のチェックを外します。
Browseから、新Gradleフォルダを指定します。
ビルドして終了
私の場合はこれでビルドが通るようになりました。
未解決点
一応、上記のようにやればビルドが通るようになります。
1点気がかりなのは、エラーでOpenJDKがどーのこーのと言っていた点です。
結果的にOpenJDKには触れずに解決できたので「あれはなんだったんだろう‥‥?」で終わっちゃいました。有識者がいらっしゃいましたらコメントなどつけてくれると嬉しいです。
やったけどダメだったこと
・Unityをインストールし直す
どうせこういうのはインストールし直しておけばどうにかなるんだよ~!と思ったけどダメでした。
アンインストールしたあとにちゃんとエクスプローラから残っていた2021.3.29f1フォルダを削除してからやり直しましたが無理でした。
・Unityの場所を半角スペースの入っていない場所に移動させる。
調べていく中でこちらの記事を見つけました。
https://zenn.dev/kaibaoke/scraps/fb46e170b72993
「Unityのインストール先にスペースを含まない。特にC:\Program Files\以下にインストールしてないか注意する」の解説を見て、
Program Files以外の、半角スペースが入らないパスになるようにインストールし直しましたがこちらも同様のエラーが出ました。
・Unity Hubからモジュールを追加し直す
これはやったというか、そもそもできなかったんですがUnity Hub上ではきちんとOpenJDKといったモジュールが正しくインストールされている表示になっていたので確認だけで終わりました。
原因が判明したので追記
XREALデバイス向け開発に使われるNRSDKを2.2.1にバージョンアップする際に、Gradleのアップグレードが必要と書かれてありました。確認していない自分が悪い。
▼証拠となるNRSDK2.2.1のリリースノートはこちら
https://xreal.gitbook.io/nrsdk/nrsdk-fundamentals/release-note/nrsdk-2.2.1
以下、上記ページより引用
Upgrade Android Gradle (3.4.3 -> 4.2.2). Note: Gradle version must be 6.7.1 or higher to avoid build errors. If you are using Unity 2022 or later, the included Gradle version is sufficient. For versions earlier than 2022, you will need to download the appropriate Gradle version.
訳:
Android Gradleを3.4.3から4.2.2にアップグレードしろよな。
注意:ビルドエラーを避けるためにはGradleバージョンが6.7.1以上必要だぜ。もしUnity2022以降を使っているなら梱包されてるGradleバージョンは十分だ。2022以前のものなら適切なGradleバージョンのダウンロードが必要だぜ。