Java 未找到本机的实现

Java 未找到本机的实现,java,android,eclipse,android-ndk,native,Java,Android,Eclipse,Android Ndk,Native,我有一个很好的测试项目。我试图在我的另一个项目中使用本机库(以及相同的方法),但出现以下错误: W/dalvikvm(22240): No implementation found for native Lcom/example/myapp/Serial;.open:(Ljava/lang/String;IIZ)Ljava/io/FileDescriptor; 这是串行类中的JNI代码: // JNI private native static FileDescriptor open(

我有一个很好的测试项目。我试图在我的另一个项目中使用本机库(以及相同的方法),但出现以下错误:

W/dalvikvm(22240): No implementation found for native Lcom/example/myapp/Serial;.open:(Ljava/lang/String;IIZ)Ljava/io/FileDescriptor;
这是串行类中的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”。因此,我看不到该错误的其他选项。

您可能是从另一个项目复制并粘贴的。

在您的c文件中将您的原型重新定义为Java_package_JavaParentClass_functionName(JNIEnv*env,jobject thiz)

如果我没有弄错的话,方法签名不匹配。但是我使用了相同的方法(复制粘贴它)和相同的库。。那怎么可能呢?我的意思和它工作的其他项目一样。它没有在你的库中找到
Serial.open()
。您使用的是显式注册还是隐式注册?如何申报?尝试使用
nm
列出库中的符号以查看实际字符串。另见