How to build 64-bit Android Applications with Unity3D
2019 年 8 月 1 日から Googole Play で公開するネイティブコードを使用するアプリは、64bit版のコードを含んでいることが必須になります。
それ以降は 32bit のネイティブコードのみを使用するアプリの公開ができなくなることが決まっています。
Android Studio で Java や Kotlin でプログラミングしたアプリならネイティブコードの心配はありませんが、ゲームエンジンの Unity3D (以下 Unity) でビルドした Android アプリはネイティブコードを含むので注意が必要です。
Unity で 64bit のネイティブコードを含めた Andorid アプリをビルドする方法を試してみたのでその方法をまとめました。
環境
- Windows 10
- Unity Editor 2019.1.4
Unity のツール類のパスを確認する
Unity を起動しメニューの
Edit -> Preferences
を開き、JDK・Android SDK・Android NDK のパスが設定されているか確認します。
設定されていなければそれぞれインストールする必要があります。
Java SE Developpment Kit 8 (JDK8) をインストールする
JDK 8 がインストールされていない場合は公式サイトからダウンロードしインストールします。
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
インストールしたら Unity の Preferences にインストールしたパスを設定します。
Android SDK (Android Studio) をインストールする
Android SDK がインストールされていない場合は Android Studi のインストールをおすすめします。
Android SDK はコマンドラインツールとして公開されていますが、Android Studio をインストールすると Android SDK を GUI でアップデートできます。
Android Studio は公式サイトからダウンロードできます。
https://developer.android.com/studio
Android Studio を起動し、メニューの
Files -> Settings
で Settings 画面を開き
Appearance & Behavior -> System Settings -> Android SDK
の階層にある Android SDK Location の項目が Android SDK のパスです。
このブログを書いている時点では Unity には Android SDK Tool 26.1.1 が必要でした。
Android SDK Tool のバージョンは SDK Tools タブで確認出来ます。
バージョンが古い場合はこの画面からアップデート出来ます。
Android SDK をインストールしたら Unity の Preferences にインストールしたパスを設定します。
Android NDK をダウンロードし展開する
Android NDK がインストールされていない場合はインストールする必要があります。
このブログを書いている時点 Android NDK の最新バージョン r19c は Unity では使えず、少し古めのバージョン r16b が必要です。
古いバージョンの Android NDK は NDK アーカイブからダウンロードできました。
https://developer.android.com/ndk/downloads/older_releases.html?hl=ja
Android NDK のインストールはダウンロードした zip ファイルを展開するだけです。
展開したら Unity の Preferences に展開したパスを設定します。
Platform を切り替えて Android-Support-for-Editor をインストールする
Unity のメニューの
File -> Build Settings
を開き
Platform の Android を選択して Switch Platform をクリックします。
Android-Support-for-Editor がインストールされていない場合は、ここでダウンロードを促されます。
Android-Support-for-Editor をダウンロードしたらインストールし、もう一度上記画面の Switch Platform をクリックします。
Player Settings を設定するする
Build Settings の左下の Player Settings をクリックします。
Other Settings の階層の設定項目を次のように変更します。
- Scripting RUntime Version を .NET 4.x Equivalent にする
- Scriopting Backend を IL2CPP にする
- ARM64 のチェックをオンにする
この設定で Build Settings の Build をクリックすれば 64bitのネイティブコードを使用する Android アプリにビルドすることが出来ました。
Android 端末実機の USB デバッグをオンにして USB ケーブルで接続して Build And Run をクリックすれば実機で動作テスト出来ます。
Androd Studio で 64bit のネイティブコードを含んでいるか確かめる方法は
Android アプリの 64bit 必須化に対応する方法
で公開しています。
エラーが出たときの対処方法
Feature `out variable declaration' cannot be used error というエラーが出た場合
Other Settings の Scripting RUntime Version を .NET 4.x Equivalent に設定する
関連ブログ
Android アプリの 64bit 必須化に対応する方法
[Unity3D] Unity5のプロジェクトをAndroid Studioにインポートする方法