Cargando una biblioteca nativa en una prueba de Android JUnit
He generado una biblioteca nativa usandondk-build
que puedo cargar y usar en mi aplicación de Android. Sin embargo, quiero escribir algunas pruebas en esta parte de mi aplicación.
Al llamar a la función nativa en mis pruebas, recibo este mensaje de excepción:
java.lang.UnsatisfiedLinkError: no process in java.library.path
...dóndeprocess
es mi biblioteca nativa para importar, llamadalibprocess.so
.
Estoy usando Roboelectric para mis pruebas y ejecutando este en particular con elRobolectricTestRunner
, si hace la diferencia.
¿Cómo puedo hacer que mi proyecto de prueba "vea" la biblioteca nativa?
Editar: Estoy cargando la biblioteca en mi aplicación así:
static {
System.loadLibrary("process");
}
public static native int[] process(double[][] data);
vocaciónProcess.process(array)
funciona bien en la aplicación (la biblioteca está cargada), pero falla cuando se ejecuta desde las pruebas con la excepción mencionada anteriormente.
Edición 2: Si pongo-Djava.library.path="<the directory of libprocess.so>"
como argumento de VM, entonces:
System.out.println(System.getProperty("java.library.path"));
muestra el camino que he establecido, pero sigo teniendo la misma excepción. Estoy configurando el directorio como:
<project-name>/libs/x86
... pero como un camino absoluto.