Я запускаю модульные тесты в 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
для unit test без ошибок?
Примечание: внутри каталога src/main/libs
У меня есть еще 3 подкаталога: armeabi
, mips
и x86
. Каждый из них содержит правильный .so файл. Я использую Не экспериментальную версию для создания библиотек NDK.
Я не хочу использовать другие сторонние библиотеки тестирования, так как все мои другие "чистые" классы 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());
}