目前在我的程序中有很多共享庫* .so,但似乎NDK只支持jni使用的主共享庫。如何在android ndk中添加多個共享庫?
示例:Java應用程序將使用庫A.so,而A.so對B有依賴關係當我將B和C構建到靜態庫時,然後在LOCAL_STATIC_LIBRARIES的A.so中使用它們,該應用程序運行良好。 當我將B和C構建到共享庫時,然後在LOCAL_SHARED_LIBRARIES的A.so中使用它們,並通過System.loadLibrary(「...」)加載它們中的每一個,該應用程序將在啓動時崩潰。
我想使用所有其他庫作爲共享庫,以便我可以保持我的應用程序的靈活性,我怎麼能在android中正確使用多個共享庫?
附加我Android.mk代碼:
DEPENDENCE_LIBS := gthread-2.0 gmodule-2.0 gobject-2.0 glib-2.0
ifeq ($(BUILD_STATIC),true)
LOCAL_STATIC_LIBRARIES := $(DEPENDENCE_LIBS)
else
LOCAL_SHARED_LIBRARIES := $(DEPENDENCE_LIBS)
endif
include $(BUILD_SHARED_LIBRARY)
如果定義BUILD_STATIC爲真正,一切運作良好,但如果我定義BUILD_STATIC爲假,能不工作
即使我通過鏈接B.so和C.so構建A.so(使用LOCAL_SHARED_LIBRARIES:= $(DEPENDENCE_LIBS)),它也不能工作。順便說一句,我不能讓uselib(...)工作作爲參考 – Hyden
uselib不存在於Android或它只是不工作?如果它不存在,那麼A.so在嘗試構建它時不會鏈接。如果它作爲Android Linux系統調用存在,也許你只是沒有正確調用它。 –
uselib在Android中不存在,建築物無法通過 – Hyden