我是一名 Android 开发人员,并且是 JNI 的新手 - 我想要做的是将字节数组从 c++ 方法传递到 java 方法。这是我的 C++ 方法的样子:
void func(char* bytes)
{
jclass callbackClass = fJNIEnv->GetObjectClass(fJObject);
jmethodID javaFunc = fJNIEnv->GetMethodID(callbackClass, "javaFunc", "([B)V");
jbyteArray array = fJNIEnv->NewByteArray(sizeof(bytes));
fJNIEnv->SetByteArrayRegion(array, 0, sizeof(bytes), (jbyte *) bytes);
fJNIEnv->CallNonvirtualVoidMethod(fJObject, callbackClass, javaFunc, array);
}
这是 javaFunc 方法:
public void javaFunc(byte[] bytes) {
...
}
当我调试 func 方法时,bytes指向一个字符数组,但是当我使用该javaFunc方法时,bytes它是类似 {16, 0, 0, 0} 的东西 - 它与它必须的完全不同。任何帮助,将不胜感激。
jeck猫
相关分类