UnsatisfiedLinkError: ... :findLibrary null zurückgegeben

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

Ich versuche zu bekommen basic-Umgebung einrichten für Android-NDK development auf Ubuntu 12 und ich Schaffe es nicht, diesen Fehler Weg zu gehen. Mein system ist bereits für reguläre Android-Entwicklung mit dem SDK. Ich habe installiert die eclipse C/C++ development tools.

Meine .bashrc hat diese Zeilen am Ende:

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

In meinem Eclipse-Eigenschaften, meine NDK Lage im Android->NDK /home/steve/android-ndk-r9c. Mein Android.mk sieht wie folgt aus:

LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := test
LOCAL_SRC_FILES := example.c

include $(BUILD_SHARED_LIBRARY)

Versuchte ich mit build-ndk auf der Kommandozeile. Ich habe jetzt in meinem Projekt-Verzeichnis eine Datei obj/local/armeabi/libtest.so, aber es ist nicht dazu mir alle gut.

Für was es Wert ist, kein Projekt funktioniert, auch nicht die NDK-Beispiel-Projekte (wie HelloJni). Was kann ich tun, um zu kompilieren eine grundlegende JNI Anwendung?

EDIT: Das ist auf einem realen Gerät. Die ndk-build-Ausgabe des " 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 <= hello-jni.c
[armeabi-v7a] SharedLibrary  : libhello-jni.so
[armeabi-v7a] Install        : libhello-jni.so => libs/armeabi-v7a/libhello-jni.so
[armeabi] Compile thumb  : hello-jni <= hello-jni.c
[armeabi] SharedLibrary  : libhello-jni.so
[armeabi] Install        : libhello-jni.so => libs/armeabi/libhello-jni.so
[x86] Compile        : hello-jni <= hello-jni.c
[x86] SharedLibrary  : libhello-jni.so
[x86] Install        : libhello-jni.so => libs/x86/libhello-jni.so
[mips] Compile        : hello-jni <= hello-jni.c
[mips] SharedLibrary  : libhello-jni.so
[mips] Install        : libhello-jni.so => libs/mips/libhello-jni.so
Wo sind Sie versuchen, die Beispiele? Ist es einem realen Gerät oder einem emulator?
Ich bin auf einem tatsächlichen Gerät.
Komisch. Der Fehler, der Auftritt, aufgrund der Tatsache, dass Sie nicht alle libtest.so - Datei in Ihrem libs/ - Verzeichnis. Was ist die Ausgabe des ndk-build Befehl für die hello-jni Projekt?
03-01 15:10:01.675: E/AndroidRuntime(31807): java.lang.UnsatisfiedLinkError: Konnte nicht geladen hello-jni vom loader dalvik.system.PathClassLoader[DexPathList[[zip-Datei "/data/app/com.example.hellojni-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.example.hellojni-1, /vendor/lib /system/lib]]]: findLibrary null zurückgegeben
Das ist das Android-log-Ausgabe. Auf Ihrem computer, navigieren Sie zu den hello-jni/jni - Verzeichnis, öffnen Sie eine Konsole gibt, und führen Sie die ndk-build Befehl. Dann poste hier die Ausgabe von diesem Befehl.

InformationsquelleAutor Steve Schwarcz | 2014-03-01

Schreibe einen Kommentar