我正在使用NDK在Android上使用一些DSP方法。 我打電話的主要活動像JNI中雙陣列的大小NDK
public native int convolution(double[]xreal,double[]ximag,double[]yreal,double[]yimag,double[]outreal,double[]outimag, int n);
卷積本地方法在convolution.c
文件:
JNIEXPORT jint JNICALL Java_com_example_convolution_MainActivity_convolution (JNIEnv *env, jobject obj, jdoubleArray xreal, jdoubleArray ximag, jdoubleArray yreal, jdoubleArray yimag, jdoubleArray outreal, jdoubleArray outimag, jsize n)
jdouble *xr,*xi, *yr, *yi;
jsize size = (*env)->GetArrayLength(env, xreal);//-----------changes
xr = (*env)->GetDoubleArrayElements(env, xreal, 0);
__android_log_print(ANDROID_LOG_VERBOSE,"MyTag", "The value of xr is %d", sizeof(xr)/sizeof(xr[0]);
xi = (*env)->GetDoubleArrayElements(env, ximag, 0);
yr = (*env)->GetDoubleArrayElements(env, yreal, 0);
yi = (*env)->GetDoubleArrayElements(env, yimag, 0);
的問題是我得到的xreal,ximag,yreal,yimag
這是5442正確的尺寸,但是尺寸的xr總是1. 有誰能指出問題嗎?
你是否得到正確的n?如果不是,這可能是一個額外的論據。 – 18446744073709551615 2015-03-02 12:52:44
n是正確的(= 5442),與尺寸 – hanaa 2015-03-02 13:51:32