我的应用程序使用共享库,例如mylib.so
此mylib.iso
希望使用lib1.so
或lib2.so
中的API,具体取决于某些条件。
lib1.so
和lib2.so
都提供完全相同的API。
我只能在加载mylib.iso
后计算条件。它不依赖于来自lib1.so
或lib2.so
的API,但我不能从java中做到:
static {
if(nativeHasCondition()) System.loadLibrary("lib1");
else System.loadLibrary("lib2");
}
System.loadLibrary("mylib");
}
因为nativeHasCondition()
位于mylib.so
。
所以,我想我会以某种方式从我的本机代码加载lib1.so
或lib2.iso
,具体取决于我的本机代码中的一些计算。
我该怎么做?
答案 0 :(得分:1)
如果nativeHasCondition()是mylib.so的方法,那么你必须首先加载mylib.so。 然后你可以遵循这个条件。
答案 1 :(得分:0)
也许您应该将该代码放入一个单独的库中并首先加载它。如果你需要测试cpu大写,可能你应该从java中执行它,然后加载适当的libs(只要你设法加载你的mylib.so,它应该在其导入部分引用lib1.so或lib2.so)。 / p>