3

has anyone encountered that error while using native dll from java code? Is it the version of the JNI library? or an unresolved dependency?

The error:

Caused by: java.lang.UnsatisfiedLinkError: unsupported JNI version 0xFFFFFFFF required by C:\jnwasapi.dll
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary1(Unknown Source)
at java.lang.ClassLoader.loadLibrary0(Unknown Source)
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)

This is a new library I'm using, the others working fine.

Dima O
  • 73
  • 2
  • 9
  • Was the library compiled against a newer version of Java than your existing runtime? – Samhain Oct 23 '13 at 18:52
  • I think so, you think I need to change the Java version? or could I compile it again? – Dima O Oct 24 '13 at 07:17
  • I would recompile it again, and ensure that you are linking against your current jdk. Did the library implement `JNI_OnLoad`? http://docs.oracle.com/javase/1.5.0/docs/guide/jni/spec/invocation.html – Samhain Oct 24 '13 at 12:16

1 Answers1

8

The jnwasapi.dll's JNI_OnLoad function is probably returning -1, which is not an expected value. The JNI_OnLoad function must return a jint with a known constant, such as JNI_VERSION_1_6. It's common for JNI_OnLoad functions to return -1 if they fail to initialize. For example, it may have tried to load a class which couldn't be found.

pburka
  • 1,434
  • 9
  • 12