我想在JNI中返回一个指向双数组的指针,然后在Java代码中使用这个值。所以我这样做了:
JNIEXPORT jlong JNICALL Java_com_sistoleaudiocapture_Processing_prueba_1nativa(
JNIEnv * env, jclass, jlong retorno, jbyteArray data, jint lenbytes) {
//PROCESS
long dirt;
dirt=(long)d_est;
return(dirt);
}
在我的java函数中:
public void prueba(byte[] data, int lenbytes) {
prueba=prueba_nativa(retorno, data, lenbytes);
}
现在,我怎样才能接受我的价值观?
由于
答案 0 :(得分:1)
您可以创建其他函数来访问本机端的数组,并将它们公开给Java。或者,您可以在本机代码中创建jDoubleArray,并将其返回给Java。
const double * arrayPtr = (const double *)&yourDoubleArray;
jint lengthOfArray = 0; //Fill dynamically with the length of your native double array.
jdoubleArray doubleArray = (*env)->NewDoubleArray(env, lengthOfArray);
(*env)->SetDoubleArrayRegion( env, doubleArray, 0, 16, arrayPtr);
return doubleArray;