2016-07-06 77 views
1

IDE:Android StudioAndroid - java.lang.UnsatisfiedLinkError:未找到本地方法

我有位於「jniLibs」文件夾下的靜態庫。

enter image description here

我還裝載了圖書館。這裏是我使用的代碼:宣佈一個單獨的類(ElianNative)作爲

static 
{ 
    System.loadLibrary("elianjni"); 
} 

本機方法是:

public native int InitSmartConnection(String paramString, int paramInt1, int paramInt2);  

public native int StartSmartConnection(String paramString1, String paramString2, String paramString3, byte paramByte); 

然而,當我調用的方法InitSmartConnection該應用崩潰,錯誤是:

java.lang.UnsatisfiedLinkError: Native method not found: com.monitor.camera.connect.ElianNative.InitSmartConnection:(Ljava/lang/String;II)I 

at com.monitor.camera.connect.ElianNative.InitSmartConnection(Native Method) 

我不知道這樣的可能原因,因爲我只是複製從另一個這個庫週轉項目然後在聲明方法和導入必要的標題時做同樣的事情。

這種問題的可能原因是什麼?我在堆棧中搜索,有人說這是在.c文件中的方法之前缺少Java關鍵字。但我不認爲這可能是問題,因爲像我所說的,這是用在另一個工作正常的項目。從其他項目

回答

3

如果您複製機庫二進制文件(.so),你必須確保:在Java本機方法

  • 聲明仍然是相同的,即兩個方法名稱和簽名保持不變
  • 本地方法的聲明放置在與捐助者項目中名稱和包相同的類中。

還檢查System.loadLibrary()成功結束,沒有錯誤日誌logcat。

+0

非常感謝! –

+0

感謝兄弟爲這個珍貴的信息 – Hanan

相關問題