Wie behebt man einen UnatisfiedLinkError (Kann keine abhängigen Bibliotheken finden) in einem JNI-Projekt

Arbeite ich an einem Java-Projekt, das mit der JNI. Die JNI-Aufrufe einer eigenen Bibliothek, die ich geschrieben habe, mich, sagen wir mal mylib.dll und das hängt von einem 3rd-party-Bibliothek, libsndfile-1.dll.

Wenn ich mein Programm stürzt ab, mit

java.lang.UnsatisfiedLinkError:  C:\...path...\mylib.dll: Can't find dependent libraries.

Ich gesucht habe diese Seite (und andere), und ich habe versucht, eine Reihe von fixes:

  1. Ich lief dependency walker. DW gab ein paar Warnungen -- , zwei Bibliotheken benötigt, die von libsndfile, MPR.DLL und SHLWAPI.DLL hatte "ungelöste Importe" - aber die DW-FAQ gesagt, dass diese Warnungen könnten, ignoriert werden.
  2. Ich der festen Methodennamen mylib.dll wie vorgeschlagen hier. Die Methode, die Namen hatten, irgendwie bekommen entstellt durch den compiler, aber ich habe linker flags, und die dll-Methode-Namen entsprechen nun denen in meiner jni-header-Datei genau.
  3. Habe ich alle diese DLLs in das selbe Verzeichnis -- das gleiche Verzeichnis wie die .jar, ruft Sie --, um sicherzustellen, dass Sie auf dem richtigen WEG sind.

Kein Würfel.

Hat jemand eine Idee was Los ist???

Mache ich meine Entwicklung in Visual Studio 2010 auf einem MacBook pro (über Parallels). Ich mache meine Prüfung in Windows XP auf einem toshiba-laptop.

InformationsquelleAutor der Frage dB' | 2011-05-23

Schreibe einen Kommentar