У меня есть простая проблема, которую я не могу найти ответ. Я написал метод в C ++, который должен вызывать метод в Java, который принимает объект. Например, мой код Java имеет:
public class MyClass {
public class ReturnType {
...
}
public void methodToBeCalledFromC( ReturnType obj ) {
...
}
}
И мой C ++ имеет:
const jclass classID = s_env->FindClass( className );
const jmethodID methodID = s_env->GetMethodID( classID, "methodToBeCalledFromC", "(LMyClass;)V" );
// The call.handler() function returns a reference to the ReturnType object
// This produces a compilier warning and causes a seg-fault.
s_env->CallVoidMethod( call.handler(), jmid, userInfo );
Я проверил classID и methodID, а также call.handler()
возвращает jbject, для которого я вызвал NewGlobalRef()
, поэтому я думаю, что все в порядке.
Можно ли передать задание таким образом?