有没有办法在不同包的两个不同类中使用相同的jni文件



我有两个相互关联的项目。我在一个存储库中使用的jni文件在另一个存储中也是需要的。

JNIEXPORT
jboolean JNICALL OBJECT_TRACKER_METHOD(haveObject)(JNIEnv* env, jobject thiz,
jstring object_id);

这个函数也将被另一个类Java_com_sensennetworks_senanpr_Tracking_ObjectTracker_使用。

有没有一个我可以为两个存储库使用相同的jni文件?

到目前为止,最简单的方法是定义这两个函数,并让它们调用一个公共实现。

第二种方法是在库的JNI_OnLoad函数中调用RegisterNatives。这允许您将任意C/C++函数绑定到特定类上的特定方法。

最后,您可以说服链接器创建一个从一个到另一个的符号别名。

最新更新