NoClassDefFound error, weil der System.loadLibrary(Kern.NATIVE_LIBRARY_NAME)
Ich versuche verwenden opencv 2.4.9. mit maven, ich habe zwei Dateien - die eine ist eine java-Datei, die in einem maven-Projekt , und die zweite ist eine java-Datei mit alle die opencv-Importe, aber diese Datei ist in der gleichen Verpackung, rufe eine Funktion des zweiten java-Datei von der ersten.
Die beiden Dateien laufen problemlos separat als java-Projekt, aber wenn ich versuche, führen Sie den kompletten maven-Projekt wirft er diesen Fehler
(java.lang.NoClassDefFoundError: org/opencv/core/Core)
und der build fehlschlägt.
Nach viel Forschung fand ich heraus, dass das problem ist vor allem, weil
System.loadLibrary(Kern.NATIVE_LIBRARY_NAME);
die bin laden opencv-Bibliotheken.
Um dies zu beheben, gibt es Lösungen hinzufügen opencv.dll in den java-Ordner, aber da arbeite os x 10.9.5, i dont haben dll ' s, wie Sie gefunden werden in den build Ordner unter opencv, aber build-Ordner wird nur da sein, wenn wir installiert haben, opencv, und ich kann nicht finden, ein .dmg-Datei für opencv. Was soll ich tun?
PS: Dies ist mein Erster Beitrag auf SO.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nachdem eine Menge Treffer und Studien, die direkt die Angabe des Pfads der opencv.dll in der System.loadLibrary("Kompletter Pfad opencv.dll") scheint getan haben, der trick, aber unter Mac das problem bleibt, wie es ist als habe ich keinen .dll-oder .so oder so .dylib für opencv in Mac.
Obwohl ich noch nie benutzt opencv:
Es ist ein Mac OS X herunterladen von opencv
Ich nehme an, es sollte ein opencv.dll entspricht die native library (opencv.jnilib?) in der opencv-Paket für Mac OS X und laden mit System.loadLibrary konnte das Problem beheben.
Gibt es einen Artikel, wie das laden einer nativen Bibliothek auf Mac OS X.
Relevant sein können:
Es ist eine alte Frage, aber ohne Antwort bisher. Für mich, die lösen das problem für das System.loadLibrary(Kern.NATIVE_LIBRARY_NAME): https://stackoverflow.com/a/35112123
Für Ubuntu Linux, habe ich das gleiche problem nicht finden können, die native Bibliothek, die tatsächlich ist die libopencv_javaxxx.also (xxx steht für die version)
was ist eigentlich installiert unter /usr/lib/jni/nicht wie andere native Bibliotheken installiert unter /usr/lib/x86_64-linux-gnu/
Mein Erster Gedanke für die native Bibliothek ist die libopencv_core.so und es gibt keine libopencv.also an alle.
Werfen Sie einen Blick auf
Nicht unterstützte Plattform im nu.Muster und meine vorgeschlagene Antwort auf openCV Java auf Kotlin, die zeigt, wie der
nu.pattern.OpenCV.loadShared();
API.