Exception: /xx/xx/xx/il2cppcore.dll did not run properly! のビルドエラーを解決

UnityでのAndroidビルド時、以下のエラーが出ました。

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

こんなエラーも出てました。

error: undefined reference to ‘XXXX’
clang++: error: linker command failed with exit code 1 (use -v to see invocation)

原因と解決方法

まず最初に確認することとして、プロジェクトまでのパスに日本語が含まれていないことを確認しましょう。
日本語のフォルダなどがあると、このようなエラーが出るそうです。
(プロジェクト内には日本語のフォルダやファイルがあっても問題ないようです。)

今回はこちらの原因ではありませんでした。

何が原因だったかというと、iOS用に記述したコードがAndroid用にもビルドされてしまったことが原因でした。

error: undefined reference to ‘XXXX’

というエラーが出ている場合は、’XXXX’の部分のメソッドが原因となっています。

iOS用にネイティブプラグインなどを使用した場合はAndroidビルドではコンパイル無効にしなければならないため、

このような記述部分を

[DllImport("__Internal")]
private static extern void Touch3D(int n);

このように変更します。

#if UNITY_IOS
    [DllImport("__Internal")]
    private static extern void Touch3D(int n);
#endif

これで無事ビルドが通りました!

コメント