DllNotFound with a ".so" library in IL2CPP / ARM64

Hi,
As posted in answer of an old (last year) post, I have a problem compiling in ARM64 with a custom android library (*.so).

Some infos :

  • Engine : Unity 2019.4.26f1
  • Platform : Android / IL2CPP / ARM64

Problem :
I have those lines in the code :

        [DllImport("CineVRMediaSurface")]
        private static extern IntPtr CINEVR_AndroidNative_GetRenderEventFunc();

        [DllImport("CineVRMediaSurface")]
        private static extern IntPtr CINEVR_AndroidNative_GetSurfaceObject(int playerID);

        [DllImport("CineVRMediaSurface")]
        private static extern IntPtr CINEVR_AndroidNative_GetTextureNativePtr(int playerID);

        [DllImport("CineVRMediaSurface")]
        private static extern void CINEVR_AndroidNative_SetNativeCallback(IntPtr nativeCallback, int playerID);

This works well in both IL2CPP & Mono with ARMv7, but in ARM64, I get this error :

Unable to find CineVRMediaSurface
DllNotFoundException: Unable to load DLL 'libCineVRMediaSurface.so': The specified module could not be found.
at CINEVR.MoviePlayer.Android.ExoAndroidMoviePlayer+<Init>d__51.MoveNext () [0x00000] in <00000000000000000000000000000000>:0
at UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator enumerator, System.IntPtr returnValueAddress) [0x00000] in <00000000000000000000000000000000>:0

What I’ve done :

  • Tried all configuration combination IL2CPP / Mono / ARMv7 / ARM64.
  • Library configuration (ARMv7, ARM64)

The library is in the .apk file (checked with apktool) in ARM64 & ARMv7.
If you need more information, do not hesitate.

And thank you for your time !

Replied in the original thread Unity does not see .so library in Android build