我正在尝试使用(*env)->RegisterNatives
将方法添加到已定义的类中,然后将其添加到回调列表中。
回调发送者当然希望我的类实现某个我不需要的接口。并且没有执行。
如果我在Java中将关键字“implements Listener”添加到我的类中,javac期望在Java中使用native或者我想在这里避免使用native关键字,因为我想在JNI_OnLoad中注册方法然后执行其中一个。
现在的问题是:我可以在JNI中实现接口还是避免使用Java中的错误消息?
答案 0 :(得分:2)
RegisterNatives
不会添加新的本机方法,它会为类中的现有本机方法注册本机函数。如果某人没有为本机方法调用RegisterNatives,JVM
将在第一次调用方法时搜索所有DLL
库以实现它。
因此,添加implements Listener
,使用native
关键字编写定义,并使用RegisterNatives
注册其实现。