2

私のプロジェクトにはPlayerCluster.java、ネイティブlibをロードし、ネイティブ関数を提供する、という名前のラッパークラスがあります。クラス名(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 に答える