Android-java.lang.UnsatisfiedLinkError:未找到本机方法
IDE:Android工作室 我的静态库位于“jniLibs”文件夹下 我还加载了那个库。以下是我使用的代码: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
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)