Google からのご指摘のとおり、Android の 64 bit 対応が必要になっているようなので、対応と設定をテストしたので、その内容を記録した記事です。
開発環境の準備
Unity は次のバージョン以上の必要があります。
- Unity 2018.2 正式サポート
Unity 2018.1 Experimental としてのサポート
設定変更
Unity のコンパイラ設定を変更する必要があります。デフォルトでは「Mono」が利用されていますが「IL2CPP」に設定変更が必要です。
File
>Build Settings
>Platform (Android)
>Player Settings...
を選択Project Settings
>Player
>Other Settings
のConfigration
を表示Scripting BackEnd
>IL2CPP
に設定Target Architectures
>ARM64
にチェックを追加
Target Architectures に
x86
が表示されていても、現在はチェック(有効)にしないほうがよいかもしれません。古いデバイスで利用できなくなってしまいますが、Google Play の 64 ビット要件に準拠していないというエラーが発生することがあるようです。1
Android の 64 bit 対応はこれだけで OK みたいです。あとは、ビルドしてみて APK ファイルの中身を確認するながれですね。(下に続く)
IL2CPP が選択できないとき
Android Studio のバージョンが古いとき、Scripting BackEnd
のコンボボックス(セレクター)が切り替えできません。
NDK のバージョンが対応していないということになりそうです。Android Studio を更新しましょう……というところですが、Unity 2019.3 であれば、Unity HUB から更新するほうがよさそうです。
対応の確認
コンパイラ変更をしたので、Unity でテストプログラムをビルドしてみてください。正しく 64 ビット対応できているかチェックしてみることにします。
Android Studio を起動すると表示される「Profile or debug APK」を選択し、Unity でビルドした APK ファイルを選択します。
チェックするところは次。
この2つのフォルダーが存在しているかどうかがポイントになりそうです。詳細は、Android Studio のドキュメント「APK アナライザーでビルドの分析をする」が参考になります。
APK ファイルの仕様は、ざっとだと WIKI がわかりやすかったです。
ためしに「Mono」でコンパイルしてみたところ「armeabi-v7a」のフォルダーしかありませんでした。どうやらうまく設定できていそうです。
参考
- Google Play ガイド - 64 ビット アーキテクチャをサポートする
- テラシュールブログ - UnityとAndroidアプリの64bit対応
- Qiita - Android ARM64bit対応まとめ
- 作者:秋山 高廣
- 発売日: 2019/07/19
- メディア: 単行本(ソフトカバー)
リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)
- 作者:Dustin Boswell,Trevor Foucher
- 発売日: 2012/06/23
- メディア: 単行本(ソフトカバー)