Имя функции JNI, если класс существует в классе - PullRequest
0 голосов
/ 25 ноября 2011

Функция MethodNameJNI может выглядеть так:

JNIEXPORT void JNICALL Java_ClassName_MethodName(JNIEnv *env, jobject obj)
{
     //...
}

В моем коде на стороне Java есть:

public class ClassName
{
    private class ClassName2
    {
        MethodName();
    }
}

Я не знаю, какнаписать имя нативной функции;любая комбинация перейти по ссылке ошибка:

JNIEXPORT void JNICALL Java_ClassName_ClassName2_MethodName(JNIEnv *env, jobject obj);

JNIEXPORT void JNICALL Java_ClassName2_MethodName(JNIEnv *env, jobject obj);

JNIEXPORT void JNICALL Java_ClassName_MethodName(JNIEnv *env, jobject obj);

1 Ответ

5 голосов
/ 02 февраля 2013

Используя javah, похоже, что имя функции получает стандартный OuterClass $ InnerClass с расширением $ до его юникодных цифр:

JNIEXPORT void JNICALL Java_ClassName_00024ClassName2_MethodName(JNIEnv *, jobject);

Ужасно, но это должно сработать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...