1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

UE 4.13 で作ったレベルを Android デバイス上で動かしてみた

Last updated at Posted at 2016-10-09

UE 4.13 で作ったレベルを Android デバイス上で動かそうと思ったときの覚書です。

#公式ドキュメントはあるものの……

Android 開発のスタートアップガイドは UE4 の公式ドキュメントに用意されています。

Android クイックスタート

しかし、今回はこの手順は使いませんでした。
というのも……

  • Unity を使う上で、Android SDK などのツール群を既に入れていた。
  • 過去に公式ドキュメントどおりにやっても「Launch」のデバイス一覧に Android デバイスが列挙されなかったことがあった。

などの理由があったためです。

ですので、今回は公式ドキュメントに頼らずにやってみることにしました。

#今回やった手順

今回はこちらのサイトを参考にさせていただきました。

UE4でAndroidアプリをビルドするには

手順はすべてこのサイトに載っているとおりにやっています。
今回インストールしたものの一覧と、バージョンを下記に載せておきます。

インストールしたもの バージョン
JDK 8u102(windows x64)
Android Studio 2.2
Android SDK Android 5.0(Lollipop)
Android NDK 13.0.3315539
Apache Ant 1.9.7

#躓いたところとその解決策
この手順に従って「Launch」ボタンを押せば Android デバイス上でアプリが動くはずでしたが、自分の環境ではエラーが発生して動きませんでした……。

アウトプットログを調べてみたところ、以下のようなエラーが大量に発生していました。

LogPlayLevel: Error: Target id 'android-19' is not valid. Use 'android.bat list targets' to get the target ids.

**「android-19」というのは、「Project Settings」にある「Platforms - Android SDK」の項目「NDK API Level」**で設定している値です。
ue413_android_00.png

この項目についてネットで調べてみたところ、AnswerHub で以下のような質問が見つかりました。

AndroidのSDK API Levelの設定値について

これを見たときに**「SDK と NDK の API レベルが合ってないのでは?」と思い、「NDK API Level」の値を「Android 5.0」の API レベル「21」に合わせて「android-21」**に変更してみました。

その結果、無事に Android デバイス上で動くようになりました!

#補足
##「android-19」で動かなかった理由
この理由はいたって簡単。

「Android 4.4」の SDK をインストールしていなかった

でした。

**「Project Settings」にある「Platforms - Android SDK」の項目「SDK API Level」「matchndk」**を指定すると、「NDK API Level」に設定されている値を元に「SDK API Level」の値を決めていたみたいです。
ue413_android_02.png

今回の**「android-19」の場合、「SDK API Level」「Android 4.4」**が指定されるような値になっていたらしく、「Android 4.4」の SDK がインストールされてない環境ではエラーになっていた、ということらしいです。

ちなみに、「Android 4.4」の SDK をインストールしたら、「android-19」でも動くようになりました。

##「Launch」のデバイス一覧に Android デバイスが表示されなかった理由
この理由もいたって簡単。

「Project Settings」にある「Platforms - Android SDK」の項目「Location of ~」に値が設定されていなかった
ue413_android_01.png

でした。

ただし、この表示にも段階があるようで……

  • **「Location of Android NDK」を設定すると、「No Devices Found」**になる。
  • **「Location of Android SDK」**を設定すると、デバイスが表示される。

と言った挙動になってました。

##環境変数について
UE4 の公式ドキュメントに以下のようなものがあります。

Android ゲームの開発のリファレンス

ここを見ると

TADP をインストールしていない場合、環境変数が正しく設定されているか確認する必要があります。

と言った記述がありますが、今回試した際はこれらの環境変数がなくても動いていました。
(ドキュメント自体は 4.9 時代のものなので、仕様が変わったのではないか?と思われます。)

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?