JNI C怎么调用 返回 byte[] 的Java方法?

Java 方法如下

// 签名: "()[B"
public byte[] array(){...}

如何在JNI中调用此方法并获取返回值呢?
我没有找到CallByteArrayMethod这样的函数,求大神指教!

阅读 9.4k
2 个回答

可以参考StackOverFlow的同类问题

jobject obj = ... // This is the object you want to call the method on
jbyteArray arr = (jbyteArray) (*env)->CallObjectMethod(env, obj, getVal);
int count = (*env)->GetArrayLength(env, arr);
jbyte* bytes = (*env)->GetByteArrayElements(env, arr, 0);

C 中没有 byte,只有 char 或者 unsigned char 可以用来处理字节。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题