ゲーム開発の備忘録

趣味のゲーム開発でのノウハウや、技術的に嵌ったポイントを忘れないように書き記しておくブログです。

libGDXプロジェクトのiPhone実機デバッグで@NotNullなメソッドがnullを返す際の対処法

前提条件

Android Studio for Mac 3.1
RoboVM 2.3.3
Gradle4.4
対象のiOSはiOS11

経緯

libGDXを用いたプロジェクトのiPhone実機デバッグを試みたところ、

@NotNull method org/robovm/idea/running/RoboVmRunProfileState.startProcess must not return null.

というエラーが発生し、ビルドしたアプリを実機で実行できませんでした。

対処法

iosプロジェクトのbuild.gradleにて、

archs = "thumbv7:arm64"

arch = "arm64"

に変更します。
また、それに合わせて、Android Studioios向けビルド設定のarchitectureをarm64に変更します。

どうやら動作対象の実機が64bitOSであるのに、libGDXのデフォルトのビルド設定が32bitOS向けのビルド設定となっている事が原因のようです。
iOS11から64bitアプリケーションしか動作しなくなっていたことをすっかり忘れていました……

エラーダイアログ最下段に出てくる、「経緯」で示したエラーメッセージでググってしまうと、全く関係ない箇所を修正しようとして失敗し、そのままになっているStack Overflowが数件ヒットするので、それを参考にしてしまい嵌りやすいです。
エラーダイアログを少しさかのぼると、

org.robovm.libimobiledevice.LibIMobileDeviceException: APIInternalError

という例外が吐かれているのを確認できるので、これをもとに調べたら解決できました。