渋谷ほととぎす通信

新しいこと、枯れたこと問わず大庭が興味を持ったものを調査、生活の効率を求める完全趣味の技術ブログ。基礎を大事にしています。

Android向けIL2CPPビルド失敗時に2点考えられること


UnityでAndroid向けにIL2CPPビルドした際に以下のようなエラーが出た場合の対策をメモしておきます。

Exception: /Applications/Unity/Hub/Editor/2018.3.7f1/Unity.app
/Contents/il2cpp/build/il2cppcore/il2cppcore.dll did not run properly!

il2cppcore.dll did not run properly!このエラーです。

上記のエラーと同タイミングで別のエラー内容が出ていると思うので、答えはそちらから探します。

調査すると2パターンの原因があるようです。
※この記事では一旦monoビルドに逃げるということは致しません。

日本語名パスが含まれる

Unityプロジェクトまでのパスに日本語が混じっているとビルドは失敗するようです。
あまり想定されないケースですが、Assets配下に日本語名のPrefabが入ってたりしても問題はありません。

参照エラー

僕の場合はコチラが原因でした。

エラーログ内に以下のような記述がある場合、参照エラーが起きています。

error: undefined reference to 'Hoge_'

この場合、Hoge_メソッドが存在しないということなので、エディタの全文検索でHoge_を探します。
以下のように、iOS向けプラグインなのに#if UNITY_IOSでくくっていなかったのが原因でした。

【誤】

[DllImport("__Internal")]
private static extern string Hoge_();


【正】

#if UNITY_IOS
    [DllImport("__Internal")]
    private static extern string Hoge_();
#endif

このように修正することでエラーを修正することができました。

以上です。

環境

  • Unity2018.3.7f1

参考