Я использую готовые библиотеки (libsox.so и др.) И использую небольшой тестовый файл для интерфейса JNI (sox-test-jni.so).Я пытаюсь загрузить «sox» и «sox-test-jni» через System.loadLibrary, и я получаю UnsatisfiedLinkError во время выполнения.
Я ранее собрал libsox.so и др. С NDK.
Когда я запускаю ndk-build, все выглядит нормально и все необходимые файлы помещаются в libs / armeabi-v7a /
При запуске моего Java-приложения на телефоне ошибка:
Cannot load library: link_image[1963]: 1413 could not load needed library 'liblpc10.so' for 'libsox.so' (load_library[1105]: Library 'liblpc10.so' not found)
Так что, очевидно, он находит libsox.so просто отлично, но не может найти liblpc10.so, который живет рядом с ним.
Это libs в моем файле APK - в libs/ armeabi-v71 /
libffmpeg.so
libFLAC.so
libfmemopen.so
libgsm.so
liblpc10.so
libmad.so
libmp3lame.so
libogg.so
libplayer.so
libpng.so
libsmr.so
libsmrx.so
libsndfile.so
libsox.so
libsox-test-jni.so
libvorbis.so
libvorbisenc.so
libvorbisfile.so
libwavpack.so
Вот мой Android.mk для JNI.
http://pastebin.com/raw.php?i=dcSijYSv
Вот мой Java:
package roman10.ffmpegTest;
import android.app.ListActivity;
import android.widget.AbsListView;
import android.widget.ListView;
public class VideoBrowser extends ListActivity implements ListView.OnScrollListener {
//load the native library
static {
System.loadLibrary("sox");
System.loadLibrary("sox-test-jni");
}
@Override
public void onScroll(AbsListView arg0, int arg1, int arg2, int arg3) {
}
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
}
}