Есть ли способ использовать один и тот же jni-файл в 2 разных классах разных пакетов? - PullRequest
0 голосов
/ 17 апреля 2020

У меня есть 2 проекта, которые связаны между собой. Jni-файл, который я использую для одного репозитория, необходим и в другом.

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

Эта функция должна использоваться и другим классом Java_com_sensennetworks_senanpr_Tracking_ObjectTracker_.

Есть ли что я могу использовать один и тот же jni-файл для обоих репозиториев?

1 Ответ

0 голосов
/ 17 апреля 2020

Безусловно, самый простой подход - просто определить обе функции и заставить их вызывать общую реализацию.

Второй подход - это вызов RegisterNatives в JNI_OnLoad функция вашей библиотеки. Это позволяет вам связывать произвольные функции C / C ++ с указанными c методами для определенных c классов.

Наконец, вы можете убедить компоновщика создать псевдоним символа от одного к другому.

...