关于java:jni无法从本机lib找到方法?

jni can't find method from native lib?

本问题已经有最佳答案,请猛点这里访问。

在Java中,本机方法:

public native String hello();

1
2
3
package name:  pack

class name: Hello

方法名称:

1
2
3
4
5
6
jstring
Java_pack_Hello_hello
(
    JNIEnv* env,
    jobject this
)

我使用ndk编译这个文件,但应用程序崩溃;

在我把这行加上:extern"C"到我的hello.cpp中错误消失了,一切正常。

那为什么呢?


JNI中使用的方法名称格式与常规C和C++不同。如果不指定外部"c"JNI将无法找到与Java原生声明匹配的函数。或者,您可以尝试区域性()。