We are trying to call a function in a shared object written in C but get a EntryPointNotFoundException.
The declaration:
[DllImport (“libX”)]
private static extern byte[ ] verifyX(byte[ ] key1, byte[ ] key2, int version);
The call:
byte[ ] returnedData = verifyX(key1ByteArray, key2ByteArray, 1);
The error:
D/dalvikvm( 3409): Trying to load lib /data/data/com.mycomp.TheApp/lib/libX.so 0x40514d10
D/dalvikvm( 3409): Added shared lib /data/data/com.mycomp.TheApp/lib/libXp.so 0x40514d10
D/dalvikvm( 3409): No JNI_OnLoad found in /data/data/com.mycomp.TheApp/lib/libX.so 0x40514d10, skipping
…
D/XX( 3409): Trying to load lib /data/data/com.mycomp.TheApp/lib/libX.so 0x40514d10
D/XX( 3409): Shared lib ‘/data/data/com.mycomp.TheApp/lib/libX.so’ already loaded in same CL 0x40
514d10
I/Unity ( 3409): EntryPointNotFoundException: verifyX
I/Unity ( 3409): at (wrapper managed-to-native) StartupVerify:verifyX(byte[ ],byte[ ],int)
I/Unity ( 3409): at StartupVerify.Start () [0x00000] in :0
Any ideas? Is it not possible to pass and return byte arrays? Can anyone explain the JNI_OnLoad not found problem since it is a C based shared object with no JNI_OnLoad.
Thanks,
George