🤖

UE5・UE4.25以降でAndroidビルドできるようにする(Windows環境)

3 min read

UE5でOculus Questへのビルドを試してみようと思ったら、UE4.25以降でAndroid SDKのセットアップ方法が変わっていて若干はまったのでメモです。

注:以下はとりあえずPC環境をあまりいじらずビルドを通す方法の説明です。UE5ではTurnkeyという新しい開発環境セットアップの仕組みがあるようで、きちんと設定すればもっとスマートにできるかも(未調査)。

Android Studioの準備

UE4.24までのAndroidビルド環境はNVIDIA CodeWorksを使用していたのですが、UE4.25からはAndroidの標準開発環境であるAndroid StudioからインストールするAndroid SDK/NDKを使用するようになっています。

で、Epic公式の手順の説明(Setting Up Android SDK and NDK for Unreal | Unreal Engine Documentation)を見ると、初手でAndroid Studioの過去アーカイブからAndroid Studio 4.0を探してインストールしてねとあるのですが、さすがにこれは他の開発環境との共存で困ってしまいます。要は必要なSDKさえ用意できればいいはずなので、これを無視してAndroid Studioの最新版を普通にインストールします。またはすでにインストール済みのAndroid Studioを使用します。

UE付属のバッチファイルを実行する

UEをインストールすると、以下の場所に必要なSDK・NDKのパッケージをインストールするバッチファイルが用意されています。

(UE4) C:\Program Files\Epic Games\UE_4.26\Engine\Extras\Android\SetupAndroid.bat
(UE5) C:\Program Files\Epic Games\UE_5.0EA\Engine\Extras\Android\SetupAndroid.bat

バッチファイルの中を見ると、以下の行でAndroid Studioのツールを呼び出して必要なパッケージをインストールしています(UE4版)。

call "%SDKMANAGER%" "platform-tools" "platforms;android-28" "build-tools;28.0.3" "cmake;3.10.2.4988404" "ndk;21.4.7075529"

なのでこのSetupAndroid.batを実行すればいいのですが、おそらく素直には動かないと思いますので、実行する前に内容をいくらか書き換えます。

set STUDIO_PATH=

となっているところに、インストール済みのAndroid Studioのパスを設定します。また、JDKが必要なのですが、最近のAndroid StudioにはOpenJDKが同梱されていますので、環境変数JAVA_HOMEにこのOpenJDKのパスを設定します。Android Studioをデフォルトのパスにインストールしていれば、SetupAndroid.batの中で以下のように書き足せば大丈夫なはずです。

set STUDIO_PATH=C:\Program Files\Android\Android Studio
set JAVA_HOME=C:\Program Files\Android\Android Studio\jre

実行するとコマンドラインにプログレスバーが表示されて必要なパッケージがインストールされます。なお、AdoptOpenJDKで実行するとsdkmanager.batの実行時に

Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema

というエラーが出ます。

UEでAndroidのSDK・NDKを設定する

UEのEdit > Project Settings > Android SDKでSDKやNDKのパスを設定します。が、何を入れたらいいかよく分からないと思います(おまけにcontains 'android-sdk-'とか混乱させる表示もあり……)ので、以下の設定で手元ではビルドが通るというスクショです。

UE5

UE4.26

katsuのところはユーザー名で書き換えてください。SDKはAndroid Studioのデフォルト設定の場所になっています。NDKはバージョン番号を含めたパスを指定します。JavaはAndroid Studio同梱のOpenJDKを使用しています(なので他にJavaをインストールする必要はなさそうです)。なお、SDK等の項目を空にするとシステムの環境変数を見に行くのですが、環境変数というのは壊れるものなので……。

SDKが無事に認識されると、PlatformsのところにAndroidデバイスが表示され(多少時間がかかる場合があります)、ビルドが可能になります。

あとはProject SettingsのPlatform > AndroidやEngine > Renderingを設定する等、公式のドキュメントの指示を参照してください。

Discussion

ログインするとコメントできます