UnsatisfiedLinkError: …: findLibrary возвращается null

03-01 14:00:53.556: E/AndroidRuntime(27208): java.lang.UnsatisfiedLinkError: Couldn't load example from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.example.test-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.example.test- 2, /vendor/lib, /system/lib]]]: findLibrary returned null 

Я пытаюсь создать базовую среду, настроенную для разработки Android NDK на Ubuntu 12, и я не могу заставить эту ошибку уйти. Моя система уже настроена для обычной разработки Android с помощью SDK. Я установил инструменты разработки eclipse C / C ++.

У моего .bashrc эти строки внизу:

 NDK_HOME=~/android-ndk-r9c export NDK_HOME export PATH=/home/steve/android-ndk-r9c:${PATH} export NDK_PATH=/home/steve/android-ndk-r9c 

В моих свойствах Eclipse мое местоположение NDK в Android-> NDK установлено в / home / steve / android-ndk-r9c. Мой Android.mk выглядит следующим образом:

 LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := test LOCAL_SRC_FILES := example.c include $(BUILD_SHARED_LIBRARY) 

Я попытался использовать build-ndk в командной строке. У меня теперь есть в моем каталоге проекта файл obj / local / armeabi / libtest.so, но это не делает мне ничего хорошего.

Для чего это стоит, ни один проект не работает, даже примеры проектов NDK (такие как HelloJni). Что я могу сделать для компиляции основного приложения JNI?

EDIT: Это фактическое устройство. Выход ndk-build hello-jni:

 [armeabi-v7a] Gdbserver : [arm-linux-androideabi-4.6] libs/armeabi-v7a/gdbserver [armeabi-v7a] Gdbsetup : libs/armeabi-v7a/gdb.setup [armeabi] Gdbserver : [arm-linux-androideabi-4.6] libs/armeabi/gdbserver [armeabi] Gdbsetup : libs/armeabi/gdb.setup [x86] Gdbserver : [x86-4.6] libs/x86/gdbserver [x86] Gdbsetup : libs/x86/gdb.setup [mips] Gdbserver : [mipsel-linux-android-4.6] libs/mips/gdbserver [mips] Gdbsetup : libs/mips/gdb.setup [armeabi-v7a] Compile thumb : hello-jni  libs/armeabi-v7a/libhello-jni.so [armeabi] Compile thumb : hello-jni  libs/armeabi/libhello-jni.so [x86] Compile : hello-jni  libs/x86/libhello-jni.so [mips] Compile : hello-jni  libs/mips/libhello-jni.so 

Правильный способ загрузки разделяемой библиотеки

 static { System.loadLibrary("test"); } 

Имя библиотеки берется из определения LOCAL_MODULE вашего файла Android.mk (или из файла Application.mk, если вы решите его использовать). В вашем случае вы называете свой модульный тест . ndk-build генерирует общую библиотеку libtest.so .

Обратите внимание, что вам не нужно включать префикс System.loadLibrary() вызов System.loadLibrary() .