2016-04-03 17 views
1

Ich versuche, diese jnr-jffi-Bibliothek zu verwenden. Es scheint eine Abhängigkeit von jffi zu haben, also habe ich das auch gebaut und in meinen libs-Ordner aufgenommen.UnasatisfedLinkedError: Die Stub-Bibliothek konnte in der JAR-Datei nicht gefunden werden

Mein Code der native Code ist wie folgt zu laden:

MATH_LIB = LibraryLoader.create(MathLib.class).load("math"); 

MATH_LIB.Multiply(1, 2); 

Und bekomme ich folgende Fehlermeldung:

java.lang.UnsatisfiedLinkError: java.lang.UnsatisfiedLinkError: could not locate stub library in jar file. Tried [jni/Darwin/libjffi-1.2.dylib, /jni/Darwin/libjffi-1.2.dylib] 

Für das, was es wert ist, ich einen Ordner jni, die erscheint beinhaltete enthalten eine Reihe nativer Bibliotheken für verschiedene Plattformen.

Wie kann ich fortfahren, meinen nativen Code mit dieser Bibliothek zu laden.

Bitte beachten Sie, dass ich versucht habe, verschiedene Pfade hinzuzufügen, wenn ich mein Projekt starte und die Bibliotheken an verschiedenen Orten auf meinem Rechner ohne Erfolg hinzufüge.

Das würde bedeuten, dass ich herausfinden muss, wie man weiter darin debuggen kann? Jeder Rat ist willkommen.

+0

Ich stehe vor dem gleichen Problem. Konntest du das lösen? – Eduardo

Antwort

0

Es wäre am einfachsten zu verwenden maven bei der Verwendung von JNR. Maven wird automatisch alle benötigten Abhängigkeiten auflösen.

Sie können nur diese zu Ihrem pom.xml hinzufügen:

<dependency> 
    <groupId>com.github.jnr</groupId> 
    <artifactId>jnr-ffi</artifactId> 
    <version>2.0.9</version> 
</dependency> 

Oder eine mehr up-to-date here Version.

0

Sie benötigen die plattformspezifische Version der Datei: libjffi-1.2.dylib zu this Ausgabe Siehe & versuchen, einen entsprechenden jar für Ihre Plattform-Version zu finden, welche die oben Bibliotheksdatei enthalten würde.