2012-06-05 38 views
-1

我的應用程序使用了一個共享庫的說,mylib.so如何加載其中一個或另一個.so?

mylib.iso想這取決於一些條件使用API​​無論從lib1.solib2.so

lib1.solib2.so都提供了完全相同的一組API。

我只能計算一次mylib.iso已加載的條件。它不依賴於API的從lib1.solib2.so,但我無法從Java做的事:

static { 
    if(nativeHasCondition()) System.loadLibrary("lib1"); 
    else System.loadLibrary("lib2"); 
} 
System.loadLibrary("mylib"); 

}

因爲nativeHasCondition()mylib.so

所以,我想我應該以某種方式加載我的本地代碼中的lib1.solib2.iso,這取決於我的本機代碼中的一些計算。

我該怎麼做?

+1

錯誤,先載入mylib.so? – EJP

回答

1

如果nativeHasCondition()是mylib.so的方法,那麼您必須先加載mylib.so。 然後你可以按照條件。

0

也許你應該把這個代碼放到一個單獨的庫中並加載它。如果你需要測試cpu上限,可能你應該從java中執行它,然後加載適當的庫(只要你設法加載你的mylib.so,它應該在其導入部分引用lib1.so或lib2.so)。

相關問題