我想在使用NDK我的Android應用(4.4)使用C庫(apriltag)。 我使用android toolchain預建了庫。 在那之後,我跟着這個教程(link)在我的C++模塊使用apriltag。LOCAL_SHARED_LIBRARIES崩潰我的應用程序
我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
然而,當我引用它在另一個模塊,我的應用程序不能甚至開始。 Android監視器告訴我,進程已經死亡。如果我評論線LOCAL_SHARED_LIBRARIES我可以啓動它,但不能在我的模塊中使用apriltag ...
此外,它適用於Android 7.使用此設備,我得到無效的DT_NEEDED條目「app/build /.../ libpgriltag.so「錯誤libgle_main.so(使用apriltag的C++模塊)。
任何想法得到它我的Android 4.4的設備嗎?
編輯1: 我已經添加到我的活動:
static {
System.loadLibrary("apriltag");
System.loadLibrary("gle_main");
}
但現在,我得到這個錯誤:
java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "sqrt" referenced by "/data/app/com.laas.lumus_app-1/lib/arm/libapriltag.so"
我想這是關係到數學庫,以便我添加到我的gle_main
和我的apriltag_prebuilt_lib
。
LOCAL_LDLIBS += -lm
沒有什麼變化。現在
,應用犯規開始對4.4和7.0的設備。
預先感謝您。
謝謝您的時間。我添加了
jniLibs.srcDirs = ['src/main/jniLibs']
,但沒有任何變化。 –