目前在我的程序中有很多共享库* .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