Java 如何从另一个本机库(.so)加载本机库(.so)?

Java 如何从另一个本机库(.so)加载本机库(.so)?,java,android-ndk,loadlibrary,Java,Android Ndk,Loadlibrary,所以,我现在的代码就像是从Java层加载库,比如liba.So,在内部liba.So加载libb.So。因此,如果我必须将APK中的所有库打包,并将其安装在没有根访问权限的设备上,那么构建我的项目的过程是什么,其中一个来自Java层的加载调用将加载两个库,首先是liba.So直接调用,然后是libb.So第二个调用,嵌套调用,从liba.so调用?如果liba.so和libb.so都打包到您的APK中,那么安装程序会将两者解包到APK中 从Java中,loadLibrary将自动查找此目录。但d

所以,我现在的代码就像是从Java层加载库,比如liba.So,在内部liba.So加载libb.So。因此,如果我必须将APK中的所有库打包,并将其安装在没有根访问权限的设备上,那么构建我的项目的过程是什么,其中一个来自Java层的加载调用将加载两个库,首先是liba.So直接调用,然后是libb.So第二个调用,嵌套调用,从liba.so调用?

如果liba.so和libb.so都打包到您的APK中,那么安装程序会将两者解包到APK中

从Java中,loadLibrary将自动查找此目录。但dlopen不知道这条路径。您必须提供dlopen到已安装libb.so的完整路径

或者,您可以从Java加载libb,然后它将在内存中,liba将发现它的导出符号没有dlopen


如果您需要更好地理解将库打包到APK中的过程,请咨询。

您可以添加代码吗?在我的Java文件中,我从System.loadLibraryliba.so加载,然后在liba.so的源文件中使用dlopen打开libb.so。我想知道如何将它们打包到APK中,以便liba.so在内部调用libb.so。现在,我可以从Java层调用liba.so,但libb.so不能从liba.so调用