需要使用來自第三方的android共享庫,lib的soname和文件名相同,格式爲libxx.so.1.2.3,這在linux上很常見。我將lib文件重命名爲libxx.so,並使用ndk-build將libxx.so鏈接到libmyjni.so中。在我的Java代碼,調用libmyjni.so功能之前,我加載它們是這樣的:Android JNI,如何使用soname加載庫libxx.so.1.2.3
System.load("/data/local/tmp/libxx.so.1.2.3");
System.loadLibrary("myjni");
我必須手動libxx.so.1.2.3複製到/數據/本地的/ tmp /。它以這種方式運行良好,在上面的加載之後,我可以調用libmyjni.so中的函數。
在代碼「System.loadLibrary(」myjni「);」中,系統總是試圖從某處獲取libxx.so.1.2.3。我想知道,在現實世界中,如何在安裝期間將libxx.so.1.2.3複製到android設備上的特定位置?這樣我就可以System.load()它了。
或者android有官方的方式將自制lib安裝到/ system/lib /?
如果libxx.so.1.2.3格式爲libxx.so,那麼我可以使用System.loadLibrary(「xx」)加載它。
好的。我找到解決我類似問題的方法。如果有人不熟悉將資產中的文件複製到設備中的存儲中,只是您的解決方案描述有點過於簡潔,並且幾乎誤導人。 – user1914692 2013-05-22 22:50:19