簡體   English   中英

Android-java.lang.UnsatisfiedLinkError:未找到本機方法

[英]Android - java.lang.UnsatisfiedLinkError: Native method not found

IDE:Android Studio

我在“ jniLibs”文件夾下有靜態庫。

在此處輸入圖片說明

我還加載了該庫。 這是我使用的代碼:

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

本機方法在單獨的類(ElianNative)上聲明為:

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) 

我不知道可能的原因,因為我只是從另一個WORKING項目復制了該庫,然后在聲明方法和導入必要的標頭方面做了同樣的事情。

可能導致這種問題的原因是什么? 我在堆棧上搜索,有人說這是.c文件中的方法之前缺少Java關鍵字的原因。 但是我不認為這可能是問題所在,因為就像我說的那樣,它被用在另一個運行良好的項目中。

如果您已從其他項目復制了本機庫二進制文件( .so ),則必須確保:

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

還要檢查System.loadLibrary()成功結束,並且在logcat中沒有錯誤日志。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM