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

Android-java.lang.UnsatisfiedLinkError:未找到本机方法,java,android,java-native-interface,Java,Android,Java Native Interface,IDE:Android工作室 我的静态库位于“jniLibs”文件夹下 我还加载了那个库。以下是我使用的代码: static { System.loadLibrary("elianjni"); } 本机方法在单独的类(ElianNative)上声明为: 但是,当我调用方法InitSmartConnection时,应用程序崩溃,错误为: java.lang.UnsatisfiedLinkError: Native method not found: com.monitor.camer

IDE:Android工作室

我的静态库位于“jniLibs”文件夹下

我还加载了那个库。以下是我使用的代码:

static 
{
    System.loadLibrary("elianjni");
}
本机方法在单独的类(ElianNative)上声明为:

但是,当我调用方法
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关键字。但是我不认为这是个问题,因为正如我所说的,这在另一个工作正常的项目中使用。

如果您从其他项目复制了本机库二进制文件(
。因此
),您必须确保:

  • java中本机方法的声明仍然相同,即方法名和签名保持不变
  • 本机方法的声明放在类中,其名称和包与project中的相同

还要检查
System.loadLibrary()
是否成功结束,并且在logcat中没有错误日志。

如果您已从其他项目复制了本机库二进制文件(
。因此
),则必须确保:

  • java中本机方法的声明仍然相同,即方法名和签名保持不变
  • 本机方法的声明放在类中,其名称和包与project中的相同

还要检查
System.loadLibrary()
是否成功结束,并且在logcat中没有错误日志。

非常感谢!非常感谢你!
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)