2012-08-08 60 views
3

我做的一切都是 「正確」:無法加載libfoo的:findLibrary返回null

  1. 創建我的JNI模塊LOCAL_MODULE := libfoo在JNI/Android.mk

  2. System.loadlibrary("libfoo")

  3. 宣佈該方法的正確簽名,甚至用雙重檢查javah

但還是有一個例外UnsatisfiedLinkError與消息:

無法加載libfoo的:findLibrary 「LIB」 自動返回null

回答

18

顯然,調用LoadLibrary方法預先考慮這樣的正確方法加載一個文件名,例如「libfoo.so」是通過調用System.loadLibrary("foo")

我學會了這種艱辛的方式,所以你不必這樣做。

+0

男人,我希望這會上升到相關的谷歌搜索的頂部。剛剛救了我幾個小時! – 2013-02-17 04:40:26

+0

maaan ..謝謝一個小船。這已經改變了一些ndk版本?什麼是完全瘋狂的是我有一個庫 - 這需要另一個庫。並且自動加載器不能滿足依賴性,因爲它試圖加載「libdependedfoo」..所以必須爲「dependedfoo」添加一個加載。 – 2013-03-18 10:13:49

+0

@LassiKinnunen,你在說什麼是無關的。依賴不加載的原因不是因爲某些「lib」前綴。在當前的NDK版本中,加載程序不會解析應用程序的lib目錄中的依賴項,並且您必須手動加載它們。即使是NDK的文檔/ CPLUSPLUS.html也會告訴你這樣做。請參閱https://code.google.com/p/android/issues/detail?id=34416 – Ilya 2013-03-18 13:52:38

相關問題