Система.ошибка loadLibrary ()
я успешно скомпилировал библиотеку c++ с помощью Android ndk-Standalone toolchain затем я создал новый проект приложения для android в Eclipse и когда я положил mylib.поэтому в папку jni и выполнять команды ndk-build он работает нормально
Prebuilt : mylib.so <= jni/
Install : mylib.so => libs/armeabi/mylib.so
но при добавлении
static{
System.load("/data/data/my_package/lib/mylib.so");
}
я получил ошибку в logcat, говоря
AndroidRuntime
Caused by: java.lang.UnsatisfiedLinkError: Cannot load library:
reloc_library[1306]: 36 cannot locate 'xmlCleanupParser'...``
я погуглил, но не нашел способ решить эту проблему.
5 ответов
недавно я столкнулся с той же ошибкой. Опробовав десятки предложений от SO, я, наконец, понял, что ошибка была в моем собственном коде. хотя android ndk скомпилировал его без каких-либо проблем / предупреждений.
попробуйте написать простую основную функцию для тестирования собственного кода и компиляции с помощью g++/gcc (или чего-то подобного) для проверки ошибок.
Я знаю, что слишком поздно для asker, но надеюсь, что кто-то еще найдет это полезный.
люди в основном забыли вырезать" lib " префикс имя библиотеки формы. Поэтому, если у вас есть " libusb.Итак, " ваш код должен быть системным.loadLibrary ("usb")...
Если у вас есть скомпилированная собственная библиотека (.so
- file) в вашем lib/
-каталог, вы можете обратиться к нему, не используя полный путь:
static{
System.load("mylib");
}
как показано в учебник.
проверьте, правильно ли вы установили пакет в заголовочном файле:как разрешить java.ленг.UnsatisfiedLinkError в NDK в Android?
try {
System.load("/data/data/<package name>/lib/libsample-jni.so");
} catch (UnsatisfiedLinkError e) {
System.loadLibrary("<sample-jni>"); //remove lib and .so from name
}
это поможет вам, Pls. проверять.
пожалуйста, укажите ваш .поэтому файл вроде как следующий.
static {
System.loadLibrary("mylib");
}
надеюсь, это поможет вам.