這個問題會出現兩種情況。

 

第一種是UnsatisfiedlinkError:dll名稱。說明dll沒有放到合適的位置。對於Android開發,我們一般把so放在libs目錄下,但是還是會出現這個錯誤。根本原因System.loadLibrary函數會加載你指定的so,該so中需要鏈接的所有符號都需要能夠鏈接到,如果有一個鏈接不成功,那麼整個so也會加載失敗。仔細檢查so中需要的所有符號,確保其存在且在正確的位置上。

 

第二種是UnsatisfiedlinkError:方法名稱。說明dll已經成功加載,但是方法名字錯了。這個錯誤最最常見而且基本的解決方法是:仔細對比你的native 方法的原型確保與javah生成的原型一致。在java端修改native方法名稱一定要記得更新c/c++端的函數名稱,這是造成此類錯誤最常見的原因。
創作者介紹
創作者 shadow 的頭像
shadow

資訊園

shadow 發表在 痞客邦 留言(0) 人氣()