Androidアプリの64ビット化強制のメールからごっぐるから届いて、その辺の絡みでseekhackしたというお話。64ビット化強制のメール自体は5月かそこらで既に届いていたのをよく見てなかったw
Unity 64bit
多分、ぐぐればQiita辺りのエントリがすぐにヒットするはず……だが何故か俺氏のテンポラリブックマークにはstackoverflowとかのurlしか残ってなかった……(´・ω・`)エイゴヨメナイノニ
何はともあれ、最終的に
- メニューバーから[ビルド設定]->[プレイヤー設定]の順に開く。
- [その他の設定]-[設定]の「スクリプティングバックエンド」を"IL2CPP"にする。
- 「ターゲットアーキテクチャ」で"ARM64"にチェックを入れる。
- "android-ndk-r16b-windows-x86_64.zip"をダウンロードして解凍する。
- メニューから[編集]-[環境設定]の順に選択する。
- [外部ツール]のNDKに先に解凍したフォルダを指定する。
みたいな感じで行けたんだったかな?
ちなみにUnityのバージョンは"2018 4.4f1"。
2019でも問題ないんだろうけれども、色々と試行錯誤した結果、最新版はやめておこうという気になった(ノ∀`)
参考:
Unity Export Android 64-bit
Googleplay 64bit console warning
Unity+sqlite+64bit
上記の方法でようやく64bitでコンパイル出来るようになったのだが、実機上でゲームをしようとすると上手く動かない。正確に言うとカードがディールされない(´・ω・`)
色々と悩んだ結果、そう言えば、前にdb絡みで同じような現象になったなということを思い出し、SQLiteUnityKitでぐぐる。
どんぴしゃりなエントリが(・∀・)
UnityでSQLiteをAndroid(64bit対応)向けに導入する
- 拾って来たsqlite-android-3290000.aarを"Assets/Plugins"の下に入れた。("Assets"以下なら何処でもいいのかな?)
- SqliteDatabase.csのDllImportの部分を全部変更した。14箇所だったかな?
[DllImport("sqlite3", EntryPoint = "sqlite3_step")] // ↓ [DllImport("libsqliteX", EntryPoint = "sqlite3_step")]
ちなみにこの方法で実機上でゲームがまともに動くようになったが、editor上では当然の如く、エラーになった(ノ∀`)
"sqlite3.dll"と"sqlite3.def"をそれぞれ"libsqliteX.dll"と"libsqliteX.def"にしたら、動いた(・∀・)
これが正しい解決策かはわからないがw
取り敢えず、これで一応64ビット化は出来ているようなんだけれども、まあしばらくはアップロードしなくてもいいか。どうせ誰もダウンロードしないし( ゜σ・゚)ホジホジ