EntryPointNotFoundException on C based .so call

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

the problem is not the call but that no public exported verifyX with this signature is found at all. so how you call it is actually not relevant it would fail already upfront in the compilation