【发布时间】:2011-08-29 03:07:36
【问题描述】:
目前我的程序中有很多共享库*.so,但似乎NDK只支持jni将使用的主共享库。
示例:Java 应用程序将使用库 A.so,而 A.so 依赖于 B、C 当我将 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 定义为 true,一切正常,但如果我将 BUILD_STATIC 定义为 false,无法工作
【问题讨论】:
标签: android shared-libraries android-ndk