相关疑难解决方法(0)

在Android JUnit测试中加载本机库

我已经生成了一个本机库ndk-build,我可以在我的Android应用程序中加载和使用它.但是,我想针对我的应用程序的这一部分编写一些测试.

在我的测试中调用本机函数时,我收到此异常消息:

java.lang.UnsatisfiedLinkError: no process in java.library.path
Run Code Online (Sandbox Code Playgroud)

... process我要导入的本地库在哪里命名libprocess.so.

我正在使用Roboelectric进行测试,并运行这个特殊的测试RobolectricTestRunner,如果它有所作为.

如何让我的测试项目"看到"本机库?


编辑: 我正在我的应用程序中加载库,如下所示:

static {
    System.loadLibrary("process");
}
public static native int[] process(double[][] data);
Run Code Online (Sandbox Code Playgroud)

调用Process.process(array)在应用程序中正常工作(库已加载),但在从上面给出的异常的测试运行时失败.


编辑2: 如果我设置-Djava.library.path="<the directory of libprocess.so>"为VM参数,则:

System.out.println(System.getProperty("java.library.path"));
Run Code Online (Sandbox Code Playgroud)

确实显示了我设置的路径,但我仍然得到相同的异常.我将目录设置为:

<project-name>/libs/x86
Run Code Online (Sandbox Code Playgroud)

......但作为一条绝对的道路.

java junit android android-ndk

15
推荐指数
1
解决办法
7756
查看次数

标签 统计

android ×1

android-ndk ×1

java ×1

junit ×1