UnityのAndroidビルドでTarget API Levelを31にしたらエラー出まくったときの対処法!!

基本的なGoogle Play Consoleへのアップロードの手順は以下のURLを参照させていただきました。
https://tukikusa.hatenablog.jp/entry/2022/03/24/180000

恐らく何も問題なければ上記のURLの手順通りにアップロードすればリリース完了となり、すんなり行くと思って安心していたら、最後の最後でApp Bundleをアップロードしたときにエラーが発生!何回通り超えないといけないハードルがあるのか。。。以下のようなエラーメッセージが出ます。

以下に、私が対処した方法をメモしておきたいと思います。
ちなみに、対処法は使っているUnityのバージョンなどによって変わってくるので、開発者全員に共通した方法ではないと思われます。(これがまたやっかいなところ)
また、Unityバージョンが「2021.3.14f1」の場合は何もエラーも出ずにビルドできた。比較的新しいバージョンのUnityでは以下の対策は何もしなくてもいいような気がするので、一番手っ取り早いのは、開発しているプロジェクトのUnityバージョンを上げてしまうことかもしれないが、ゲームが正常に動かなくなるリスクもあるので、バージョンを上げたくない場合は以下の処理が必要になる。

【開発環境】
Unity2020.3.4f1

【対処した方法】
①個別にGradleのダウンロード
②Custom Base Gradle Templeteを使用
③baseProjectTemplete.gradle内を編集
④keystoreを再生成
⑤CustomMainManifestを使用

【対処法の詳細】
①Gradleの公式ホームページからGradleを個別にダウンロードしてくる。
 https://gradle.org/releases/
 ここで、必要なバージョンがあるらしく、私は「6.1.1」をダウンロードしてきた。
 最新だったらいいというわけでもないようだ。
 (この必要なバージョンは各人で異なる可能性がある。)
 - 参考URL
 https://rarafy.com/blog/2021/08/24/unity-gradle-error/
 
 そして、上記の参考URLの通りに、ダウンロードしてきたGradleをUnityをインストールしているフォルダの中の指定の場所に配置して、Unity内のPreferenceでそのGradleの場所を手動で設定する。

UnityのPreferences



②以下のURL内の対応策3を参考に、Custom Base Gradle Templeteを使う設定をする。
 - 参考URL
 https://qiita.com/warapuri/items/17721b113be8c44e5369
 
③classpathのところも②の参考URL同様で「4.0.1」にする。

④keystoreを再生成する
 生成方法は、本記事の一番上で紹介したURLにやり方が書いてありますので参照ください。
 https://tukikusa.hatenablog.jp/entry/2022/03/24/180000
 そして、何故再生成するかですが、よくわからないのですが、APIレベルを上げてビルドしたときにエラーとしてkeystoreが古い?かパスワードが一致しない?みたいなエラーメッセージがUnityのログに表示されたためです。(当然エラーなのでビルド失敗)
推測ですが、keystoreの中にAPIレベルの情報なども入っていて、Target API Levelと一致しないといけないなどの制限があるのかもしれません。
とにかく、再生成したところ、このエラーは無くなりました。なお、新規作成する場合は再生成は関係なく、新規作成するだけでOK。

⑤AndroidManifest.xmlを生成してファイル内を編集する。
 以下のURLを参照し、その通りに直します。
 - 参考URL
 https://www.hanachiru-blog.com/entry/2022/02/10/120000
 実は、この対応はAPI Levelを31に変更することと関係は無いようです。
 ④まで対応すると恐らくビルドは成功し、アップロードもできるのですが、アップロードすると「’android:exported’ プロパティ セットは使用されていません。」というエラーが発生します。このエラーを解除するために⑤の対応を行います。

とりあえず、上記①から⑤の処理を行うことでビルドが通り、アップロードも成功しました。

以下、Unity内のビルド関連のもろもろの設定を貼り付けておきます。

Build Settings画面
PlayerのOther Settings その1
PlayerのOther Settings その2 これより下の項目はすべてデフォルト
PlayerのPublishing Settings
PreferencesのExternal ToolsのAndroid設定部分 Gradleだけ手動


いきなりUnityでAndroidのプラットフォームでビルドが出来なくなった!!

バージョン「Unity2020.3.2f1」を使っていたのだが、今まで普通にAndroidでビルドしてapkファイルを生成できていたのに、いきなりできなくなった!!
特に何もしていないのに。
エラーとしては以下のようなエラーだった。

Gradle build failed. See the Console for details.
つまり、詳細はコンソールを見ろとのことなので見てみた。
うむ。全くわからん!!
とにかくわからないので、空のプロジェクトを作って、Androidでビルドしたら、やはり上と同じエラーが出てビルドが出来なかった。
つまり、プロジェクトの中身は関係なく、Unityがビルドできなくなっていることが判明。
そして、試しに、別のUnityバージョンでビルドしたら、ビルドできた!!
つまり、「Unity2020.3.2f1」のバージョンでだけAndroidでのビルドが出来なくなっているっぽいのだ!!

■対処法
もう何が原因か分からないので、とりあえず近いバージョンということで、「Unity2020.3.4f1」にプロジェクトを変更して、このバージョンでビルドしたらできた!!
結局原因はわからないままだが、バージョン変えて動いたので深く考えないことにした。
© 2024 Husky Studios, All rights reserved.