繁体   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