加载本机库的单元测试 Java 类
2022-08-31 14:26:00
我正在Android Studio中运行单元测试。我有一个Java类,它使用以下代码加载本机库
static
{
System.loadLibrary("mylibrary");
}
但是当我在我的目录中测试这个类时,我得到src/test
java.lang.UnsatisfiedLinkError: no mylibrary in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1864)
at java.lang.Runtime.loadLibrary0(Runtime.java:870)
at java.lang.System.loadLibrary(System.java:1122)
我怎样才能让它找到位于的本机.so库的路径,以便进行单元测试而不会出错?src/main/libs
注意:在目录中,我还有3个子目录:,和。其中每个都包含正确的 .so 文件。我正在使用非实验版本来构建NDK库。src/main/libs
armeabi
mips
x86
我不想使用其他第三方测试库,因为我的所有其他“纯”java类都可以进行单元测试。但如果这是不可能的,那么我对替代方案持开放态度。
这是我的测试代码,它抛出了错误
@Test
public void testNativeClass() throws Exception
{
MyNativeJavaClass test = new MyNativeJavaClass("lalalal")
List<String> results = test.getResultsFromNativeMethodAndPutThemInArrayList();
assertEquals("There should be only three result", 3, results.size());
}