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。
答案 0 :(得分:1)
如果libso1.so
和libso2.so
是libmyso.so
的依赖关系(例如,LOCAL_SHARED_LIBRARIES
中通过Android.mk
声明,则会在Android 5.0上自动加载 - 事实你需要以相反的顺序加载它们(首先加载依赖项,然后加载libmyso.so
本身)只是旧Android版本中链接器的限制。
如果您只想拥有一个包含所有代码的.so
个文件,请更改Android.mk
libso1.so
和libso2.so
代替BUILD_STATIC_LIBRARY
BUILD_SHARED_LIBRARY
的{{1}},并通过LOCAL_STATIC_LIBRARIES
而不是LOCAL_SHARED_LIBRARIES
引用它们。然后它们将被内置,并且您只有一个.so
文件可以分发和加载。