我在
java类中有字节数组,我想将该字节数组传递给JNI C类,我无法在JNI C中访问该数组,请帮忙.
解决方法
你需要声明接收数组的JNI函数(在
Java中):
private native void sendData(byte[] data);
sendData(buffer);
JNIEXPORT void JNICALL Java_com_packageXXX_yourClass_sendData( JNIEnv*
env,jobject thiz,jbyteArray data);
读取数组:
byte * cData = env->GetByteArrayElements(data,&isCopy);
并释放:
env->ReleaseByteArrayElements(data,cData,JNI_ABORT);
上面的代码是C.要使它适用于C,您需要将jni环境(env)作为要调用的函数的第一个参数传递,如下所示:
(*env)->GetByteArrayElements(env,…)