我有一个运作良好的测试项目。我试图在我的其他项目中使用本地库(以及相同的方法),我得到了这个错误:
W/dalvikvm(22240): No implementation found for native Lcom/example/myapp/Serial;.open:(Ljava/lang/String;IIZ)Ljava/io/FileDescriptor;
这是Serial类中的JNI代码:
// JNI
private native static FileDescriptor open(String path, int baudrate,
int flags, boolean flowCon);
public native void close();
static {
System.loadLibrary("test_lib");
}
我的libs文件夹中的三个文件夹中有“libtest_lib.so”:armeabi,armeabi-v7a,x86。
我调试了应用程序,似乎在调用本机方法'open'之前调用了'System.loadLibrary'。所以我看不出错误的其他选项..
答案 0 :(得分:1)
你可能从另一个项目中复制并粘贴了你的原型在你的c文件中重新定义为Java_Pacakage_JavaParentClass_functionName(JNIEnv * env,jobject thiz)