我遇到过两个 jar 库使用同一个共享库的情况。
在每个库中,“主界面”类使用 System.loadLibrary
加载 .so 文件。
我的问题是:如果用户决定在一个项目中使用这两个 jar 库,那么第二次为同一个 .so 文件调用 System.loadLibrary
是否会导致任何异常?还是系统“以某种方式处理”以防止共享库被加载两次?或者也许有一种“众所周知的模式”来处理这种情况?
jni 包装器的目标是在 android 上使用。我是这两个包装器库的作者,因此您可以完全控制 Java 源代码。
最佳答案
根据apidocs这应该不是问题:“如果使用相同的库名称多次调用此方法,则忽略第二次和后续调用。”
关于java - 为同一个共享库调用 System.loadLibrary 两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21877127/