3 Stimmen

Probleme beim Laden abhängiger .SO-Dateien im Android NDK

Ich habe die folgende Android.mk...

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := Box2D-local
LOCAL_SRC_FILES := $(LOCAL_PATH)/../Box2D/libs/$(TARGET_ARCH_ABI)/libbox2D.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE    := openbox
LOCAL_C_INCLUDES := $(LOCAL_PATH)/.. $(LOCAL_PATH)
NDK_OUT :=../../
LOCAL_SRC_FILES := \
$(subst $(LOCAL_PATH)/,, \
$(wildcard $(LOCAL_PATH)/*.cpp) \
    $(wildcard $(LOCAL_PATH)/Collision/Shapes/*.cpp))
LOCAL_LDLIBS := -lm -llog -ldl -lGLESv1_CM
LOCAL_SHARED_LIBRARIES := Box2D-local
include $(BUILD_SHARED_LIBRARY)

Alles kompiliert gut, aber wenn ich die Anwendung ausführe, sehe ich....

D/dalvikvm(14851): Versuche lib /data/app-lib/com.lmdig.android.tutorial.oglbox2dbasics-1/libopenbox.so 0x40ce7138 zu laden

E/dalvikvm(14851): dlopen("/data/app-lib/com.lmdig.android.tutorial.oglbox2dbasics-1/libopenbox.so") fehlgeschlagen: Kann Bibliothek nicht laden: soinfo_link_image(linker.cpp:1635): Bibliothek "libbox2D.so", die von "libopenbox.so" benötigt wird, konnte nicht geladen werden; verursacht durch load_library(linker.cpp:745): Bibliothek "libbox2D.so" nicht gefunden

Aber wenn ich den /data/app-lib/com.lmdig.android.tutorial.oglbox2dbasics-1/ Ordner auf dem Gerät ls, sehe ich...

root@android:/ # ls /data/app-lib/com.lmdig.android.tutorial.oglbox2dbasics-1/
libbox2D.so
libopenbox.so

Ist mein LOCAL_SRC_FILES falsch oder so etwas?

3voto

Jackie Punkte 19449

Es sieht so aus, als hätte ich gedacht, dass es, als ich es in einer anderen Klasse geladen habe, für diese verwendet werden würde. Diese Annahme war falsch, und ich musste beide Bibliotheken in der Klasse laden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X