Загрузка нативной библиотеки в тесте Android JUnit
Я создал собственную библиотеку, используяndk-build
который я могу загрузить и использовать в моем приложении для Android. Тем не менее, я хочу написать несколько тестов для этой части моего приложения.
При вызове нативной функции в моих тестах я получаю это сообщение об исключении:
java.lang.UnsatisfiedLinkError: no process in java.library.path
...гдеprocess
моя родная библиотека для импорта, названнаяlibprocess.so
.
Я использую Roboelectric для своих тестов, и запускаю этот конкретный сRobolectricTestRunner
, если это имеет значение.
Как я могу заставить свой тестовый проект «видеть» нативную библиотеку?
Редактировать: Я загружаю библиотеку в свое приложение так:
static {
System.loadLibrary("process");
}
public static native int[] process(double[][] data);
призваниеProcess.process(array)
прекрасно работает в приложении (библиотека загружена), но не запускается при запуске из тестов, за исключением приведенного выше
Изменить 2: Если я установлю-Djava.library.path="<the directory of libprocess.so>"
в качестве аргумента VM, тогда:
System.out.println(System.getProperty("java.library.path"));
показывает путь, который я установил, но я все еще получаю то же исключение. Я устанавливаю каталог как:
<project-name>/libs/x86
... но как абсолютный путь.