jni/
Android.mk -> libmyso.so
folder1/
Android.mk -> libso1.so
folder2/
Android.mk -> libso2.so
如何将 libso1.so 和 libso2.so 编译成 libmyso.so?因此,我只能在java代码中加载libmyso.so,不需要分别加载libso1.so和libso2.so。
jni/
Android.mk -> libmyso.so
folder1/
Android.mk -> libso1.so
folder2/
Android.mk -> libso2.so
如何将 libso1.so 和 libso2.so 编译成 libmyso.so?因此,我只能在java代码中加载libmyso.so,不需要分别加载libso1.so和libso2.so。
如果libso1.so
并且libso2.so
是 的依赖项libmyso.so
(例如通过LOCAL_SHARED_LIBRARIES
in声明Android.mk
,它们将在 Android 5.0 上自动加载 - 您需要以相反的顺序加载它们(首先加载依赖项,然后加载libmyso.so
自身)的事实只是旧 Android 中链接器的限制版本。
如果您只想拥有一个.so
包含所有代码的文件,请更改Android.mk
forlibso1.so
和libso2.so
to doBUILD_STATIC_LIBRARY
而不是,并通过而不是来BUILD_SHARED_LIBRARY
引用它们。然后它们将被内置,您只有一个文件可以分发和加载。LOCAL_STATIC_LIBRARIES
LOCAL_SHARED_LIBRARIES
.so