2

在我的项目中,我有一个名为 的包装类PlayerCluster.java,它加载本机库并提供本机函数。如果我更改了类名 ( PlayerCluster.java) 或其包,我会java.lang.UnsatisfiedLinkError在调用本机函数时得到。

为什么重命名类名时会出现此错误?是否有一种方法必须将本机库加载到特定的 java 类中?

4

1 回答 1

2

如果重命名类,则还必须重命名JNIEXPORT本机库中的方法,以便它们与新的 Java 类名匹配,然后重新构建本机库。

例如,给定此方法签名:

JNIEXPORT jobjectArray JNICALL
Java_com_mn_rootscape_utils_NativeMethods_getFilesPermissions( JNIEnv* env, jobject thizz, jobjectArray filePathsArray ) 

NativeMethods是 Java 类,如您所见,它是本机函数签名的一部分。

于 2012-06-23T07:50:38.457 回答