Могу ли я вызвать метод Java из нативного кода? Если да, то как? - PullRequest
0 голосов
/ 24 декабря 2011

У меня есть функция Java, которая может принимать переменное число параметров, а в JNI я получаю все параметры в jobjectArray. Но проблема в том, что все параметры доступны в типе String, но изначально они имеют другой тип данных. Поэтому в c / c ++ преобразование их в исходный тип невозможно. Так что, если бы я мог вызвать какой-нибудь другой java-метод, который облегчит мне эти преобразования. Можно ли вызвать java-метод из нативного кода в JNI?

Пожалуйста, помогите мне. Я действительно поражен этим с давних времен. Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 28 декабря 2011

мы можем передать String как параметр из собственного кода при обратном вызове метода java с помощью env-> NewStringUTF (фактический параметр).

1 голос
/ 24 декабря 2011

Вот краткий пример: http://journals.ecs.soton.ac.uk/java/tutorial/native1.1/implementing/method.html.

По сути, вам нужно найти собственные объекты, представляющие класс и метод, который вы хотите вызвать, отформатировать аргументы, вызвать соответствующий метод JNIEnv-> CallXXX и обработатьПолученное значение.

...