【Unreal Engine5】Android パッケージビルドトラブルシューティング

スポンサーリンク
UnrealEngine

かなり苦戦したのでメモ。

大前提

まず、やり方自体は下記のURLの指示に従ってください

Android プロジェクトのパッケージ化
最終的な Android プロジェクトのパッケージ化について説明します。

Unreal Enigineの世界ではとにかく公式ドキュメントの内容を守ることが重要です。

開発要件
互換性のあるハードウェア、ソフトウェア、SDK の情報を含む Android の開発要件です。

上のURLは必ず確認しときましょう。(自分は5.2環境でパッケージ化)

UE バージョンAndroid Studio バージョンMinimum Android SDK バージョンAndroid NDK バージョン注記
5.1-5.2Android Studio 4.0推奨:SDK 32 最小:SDK 30NDK r25bSDK 30 はシステム上でコンパイルするために必要な最小限の SDK ですが、SDK 26 はデバイス上でプロジェクトをシッピングするためにターゲットとすることができる最小限の SDK です。
5.0Android Studio 4.0SDK 23NDK r21eAndroid File Server (AFS) の使用に必要な最小 SDK バージョンは 26 です。
4.26.2 – 4.27Android Studio 4.0NDK r21b
4.25Android Studio 3.5.3NDK r21bUnreal Engine 4.25 では NDK r21b の使用を推奨しますが、UE 4.25 は幾つかのローエンド デバイスでの互換性問題に対応するために NDK r20b をサポートします。
4.21 – 4.24NDK r14b
4.19 – 4.20NDK r12b

基本的に上の表のとおりに環境を整えていきましょう。新しすぎても古すぎてもダメです。以下に代表的なトラブルシューティングを何点か挙げておきます。

パッケージ化が即失敗する(Setupandroid.bat実行時にエラー)

まずはビルドがすぐに失敗してしまう例。このような場合はSetupandroid.bat実行時にエラーが出る件が多いです。

参考:https://forums.unrealengine.com/t/android/531707

解決法①:AndroidStudioのバージョン変更

このような場合ではAndoroidStudioのバージョンが最新となっていることが原因なことが多いです。

実は、UEで使うAndroidStudioは2020年にリリースされた4.0がメインなので,2022等の最新版では機能しないんですね(対応してほしい……)ですから、通常のダウンロードページからAndroidStudioを落とすのは間違いで、アーカイブのページからダウンロードすることになります。

Android Studio のダウンロード アーカイブ  |  Android Developers

解決法②:CommandToolのバージョン変更

もう一つのケースはコマンドツールのバージョンです。

Unreal Engine の Android SDK セットアップは、Android バージョン 

1
8.0
 のコマンドライン ツールに依存します。インストールを最終確定する前に、このバージョンがインストールされており、UE の 
1
SetupAndroid
 スクリプトがそれを正しくターゲットとしていることを確認する必要があります。

https://docs.unrealengine.com/5.2/ja/how-to-set-up-android-sdk-and-ndk-for-your-unreal-engine-development-environment/

公式のドキュメントにこのような記述があるのですが、実はコマンドラインツールは9.0が最新となっていて、意識していないとこいつがインストールされてしまいます……

Android Studio 4.0を立ち上げて歯車→SDKManager→SDKTools→ShowPackageDetailsとクリックしていきコマンドツールのバージョンを確認しましょう。

こんな感じで8.0だけをインストールしているのが理想です。

少し待つとパッケージ化が失敗している(SetupAndroidは成功)

さて、もう一つのケースはSetupAndroidが成功しているにもかかわらずパッケージ化が失敗している場合です。こちらの方は大方、SDKあるいはNDKのパス設定に失敗していることが原因です。

とりあえずUE5.2のパッケージでうまくいった例を晒しておきます。

ファイルのuser名は適宜自分の名前に変更してください

Outputlogを確認する(参考)

上のファイルを写すだけでも事足りますが、一応原因究明はしておきましょう。logの中からエラーとなる箇所を探します。

パッケージ化に関しては白文字でエラーが書かれていることが多いので注意です!!

自分の場合はこんな感じでエラーが書いてありました。

エラー

UATHelper: Packaging (Android (ASTC)): Installed Sdk validity: UATHelper: Packaging (Android (ASTC)): Android: (Status=Invalid, Allowed_Sdk=r25b, Current_Sdk=r25c, Allowed_AutoSdk=r25b, Current_AutoSdk=, Flags=”InstalledSdk_InvalidVersionExists, Platform_ValidHostPrerequisites”) UATHelper: Packaging (Android (ASTC)): Will install ‘Android SDK r25b’

Invalidとか、そういう単語が見つかるとビンゴですね。このエラーの場合はNDKのバージョンに問題があることを示しています。(NDKという文字はないですけど、r25bという文字を参考にしていただけると……)

NDKの最新バージョンはr25c(25.2……)ですが、上の表にもある通り、UEが作動するバージョンはr25b(25.1…)ですので、確認は大事です。

終わりに

パッケージ化はめんどくさいエラーが多いので情報共有はちゃんとしたいところですね

コメント

タイトルとURLをコピーしました