Как найти сигнатуру Java/Kotlin метода для работы через JNI

Для того, чтобы получить ссылку на Java метод, нужно знать его сигнатуру. Есть два способа:

1. Подобрать сигнатуру по таблице:

Сигнатура Java тип
V void
Z boolean
B byte
C char
S short
I int
J long
F float
D double
L fully-qualified-class ; fully-qualified-class
[ type type[]
( arg-types ) ret-type method type

2. Получить сигнатуру через javap

%JAVA_HOME%/bin/javap -classpath "your.jar" -s com.myproject.YourClass

Пример:

Для метода:

public static void runTask(Runnable runnable) {
    runnable.run();
}

Сигнатура будет: runTask(Ljava/lang/Runnable;)V — принимает объект класса java.lang.Runnable и возвращает void.
Для встроенных классов (например android.os.Handler) ищите .jar в Android_SDK.

Совет:

Для С++ удобнее использовать библиотеку jnipp вместо jni.h

P.S. Информации подобного рода в интернете — полно, писал исключительно для себя, чтобы каждый раз не искать.

Комментариев нет. Будьте первым!
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Личный блог Евгения Жирнова