views:

36

answers:

1

I am trying to use (*env)->RegisterNatives to add methods to a defined class which I then add to a callback list. The callback sender of course expects my class to implement a certain interface which I do not. And is failing on execution.

If I add the keyword "implements Listener" to my class in Java the javac expects to have the methods definition in Java or with native keyword which I try to avoid here, as I'd like to register the methods within the JNI_OnLoad and execute one of them afterwards.

The question now is: Can I implement the interface in JNI or avoid the error message in Java?

+1  A: 

RegisterNatives doesn't add new native methods, it registers native function for the existing native method in the class. If someone doesn't call RegisterNatives for a native method, the JVM will search all DLL libraries for its implementation when method is called for the first time.

So, add implements Listener, write definitions with native keyword and register their implementation with RegisterNatives.

Ha
Thank you. If you hadn't pointed me to my misunderstanding with the RegisterNatives it would have taken me another week at least.
lhw