我有一个 java 方法,像这样:
public static native void receiveCallback(byte[] value1, byte[] value2);
在 JNI 中,我可以访问类和方法,但我的参数列表不正确。我正在尝试这样调用方法:
jmethodID testJavaMethod = (java_environment)->GetMethodID(clazz, "receiveCallback","([B[B");
然后我在运行时收到一个 NoSuchMethod 异常。
我关注了多个 SO 问题,包括这个 JNI - How to callback from C++ or C to Java? ,但我仍然卡住了。
有什么建议吗?
谢谢。
最佳答案
如果要回调到 Java 中,必须使用 Java 实现。你需要
public static void receiveCallback(byte[] value1, byte[] value2) {
// do something with value1 and value2
}
要获取静态方法的 ID,您需要使用“GetStaticMethodID”。此外,要调用它,您还必须使用“CallStaticVoidMethod()”。
关于java - 如何将 2 byte[] 从 JNI 传递给 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28952035/