Ich versuche, eine C-Bibliothek (Apriltag) in meiner Android-App (4.4) mit dem NDK zu verwenden. Ich prebuilt die Bibliothek mit der Android-Toolchain. Danach folgte ich diesem Tutorial (link), um Apriltag in meinem C++ - Modul zu verwenden.LOCAL_SHARED_LIBRARIES stürzt meine App
Mein android.mk:
include $(CLEAR_VARS)
LOCAL_MODULE := apriltag_prebuilt_lib
LOCAL_SRC_FILES := $(LOCAL_PATH)/prebuilt/libapriltag.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := gle_main
...
LOCAL_LDLIBS := -landroid -llog -lEGL -lGLESv2
LOCAL_SHARED_LIBRARIES += apriltag_prebuilt_lib
LOCAL_STATIC_LIBRARIES := cpufeatures android_native_app_glue ndk_helper
aber sobald ich es in einem anderen Modul zu verweisen, kann meine App nicht einmal starten. Android-Monitor sagt mir, dass der Prozess gestorben ist. Wenn ich die Zeile LOCAL_SHARED_LIBRARIES kommentiere, kann ich es starten, aber kann nicht in meinem Modul printag verwenden ...
Auch funktioniert es auf Android 7. Mit diesem Gerät bekomme ich den ungültigen DT_NEEDED Eintrag "app/build /.../ libapriltag.so "Fehler für libgle_main.so (das C++ Modul, das apriltag verwendet).
Irgendwelche Ideen, damit es auf meinem Android 4.4 Gerät funktioniert?
EDIT 1: ich meine Aktivität hinzugefügt haben:
static {
System.loadLibrary("apriltag");
System.loadLibrary("gle_main");
}
Aber jetzt bekomme ich diesen Fehler:
java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "sqrt" referenced by "/data/app/com.laas.lumus_app-1/lib/arm/libapriltag.so"
Ich denke, es auf die Mathematik-Bibliothek verwandt ist so Ich fügte zu meinem gle_main
und meinem apriltag_prebuilt_lib
hinzu.
LOCAL_LDLIBS += -lm
Nichts geändert.
Jetzt startet die App nicht auf dem 4.4 UND dem 7.0-Gerät.
Vielen Dank im Voraus.
Vielen Dank für Ihre Zeit. Ich habe
jniLibs.srcDirs = ['src/main/jniLibs']
hinzugefügt, aber nichts hat sich geändert. –