2016-07-06 79 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

相关问题