Carregando uma biblioteca nativa em um teste Android JUnit
Eu gerou uma biblioteca nativa usandondk-build
que eu sou capaz de carregar e usar no meu aplicativo Android. No entanto, quero escrever alguns testes contra essa parte do meu aplicativo.
Ao chamar a função nativa em meus testes, recebo esta mensagem de exceção:
java.lang.UnsatisfiedLinkError: no process in java.library.path
...Ondeprocess
é minha biblioteca nativa para importar, nomeadalibprocess.so
.
Eu estou usando Roboelectric para meus testes, e executando este em particular com oRobolectricTestRunner
, se faz diferença.
Como posso fazer com que meu projeto de teste "veja" a biblioteca nativa?
Editar: Estou carregando a biblioteca no meu aplicativo da seguinte forma:
static {
System.loadLibrary("process");
}
public static native int[] process(double[][] data);
chamandoProcess.process(array)
funciona bem no aplicativo (a biblioteca é carregada), mas falha quando executado a partir dos testes com a exceção dada acima.
Editar 2: Se eu definir-Djava.library.path="<the directory of libprocess.so>"
como um argumento de VM, então:
System.out.println(System.getProperty("java.library.path"));
mostra o caminho que eu configurei, mas ainda recebo a mesma exceção. Estou definindo o diretório como:
<project-name>/libs/x86
... mas como um caminho absoluto.