Laden einer nativen Bibliothek in einem Android JUnit-Test
Ich habe eine native Bibliothek mit generiertndk-build
mit dem ich in meiner Android-Anwendung laden und verwenden kann. Ich möchte jedoch einige Tests für diesen Teil meiner App schreiben.
Beim Aufrufen der nativen Funktion in meinen Tests erhalte ich die folgende Ausnahmemeldung:
java.lang.UnsatisfiedLinkError: no process in java.library.path
...woherprocess
ist meine native Bibliothek zum importieren, benanntlibprocess.so
.
Ich benutze Roboelectric für meine Tests und führe diesen mit demRobolectricTestRunner
, wenn es einen Unterschied macht.
Wie kann ich erreichen, dass mein Testprojekt die native Bibliothek "sieht"?
Bearbeiten: Ich lade die Bibliothek in meiner App wie folgt:
static {
System.loadLibrary("process");
}
public static native int[] process(double[][] data);
BerufungProcess.process(array)
Funktioniert in der App einwandfrei (die Bibliothek ist geladen), schlägt jedoch fehl, wenn die Tests mit der oben angegebenen Ausnahme ausgeführt werden.
Bearbeiten 2: Wenn ich setze-Djava.library.path="<the directory of libprocess.so>"
Als VM-Argument gilt dann:
System.out.println(System.getProperty("java.library.path"));
zeigt den Pfad, den ich festgelegt habe, aber ich erhalte immer noch die gleiche Ausnahme. Ich stelle das Verzeichnis wie folgt ein:
<project-name>/libs/x86
... aber als absoluter Weg.