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关键字。但是,我不认为这可能是问题,因为就像我说的那样,这个用于另一个工作正常的项目。
答案 0 :(得分:4)
如果您从其他项目复制了本机库二进制文件(.so
),则必须确保:
同时检查System.loadLibrary()
是否成功结束,没有logcat中的错误日志。