将jintarray转换为jfloatarray Android JNI

时间:2016-01-20 09:07:23

标签: c++ java-native-interface

我想知道将jintarray转换为jfloatarray的正确方法是什么?

这是我尝试转换它的方式,但它无法正常工作:

JNIEXPORT jdouble JNICALL Java_com_MES_yo_NativeClass_CalcSumDiff(JNIEnv * env, jclass cls,jintArray intarray1,  jintArray intarray2, jint ColsCount, jint RowsCount)
        {


            jboolean ji1,ji2;
            jdouble Result = 0;
            float * inputarray1 = env->GetFloatArrayElements((jfloatArray)intarray1,&ji1);
            float * inputarray2 = env->GetFloatArrayElements((jfloatArray)intarray2,&ji2);

            int sum  = 0;
            for(int i = 0 ; i < (RowsCount * ColsCount) - 1; i++)
            {
                sum += abs((pow(inputarray1[i], 1.5)/ 15.96871942) - (pow(inputarray2[i],1.5)/15.96871942));
/*              __android_log_print(ANDROID_LOG_VERBOSE, "My Error", "inputarray1[i] = %d" ,inputarray1[i]);
                __android_log_print(ANDROID_LOG_VERBOSE, "My Error", "inputarray2[i] = %d" ,inputarray2[i]);
                __android_log_print(ANDROID_LOG_VERBOSE, "My Error", "sum = %d" ,sum);*/
            }

            env->ReleaseFloatArrayElements((jfloatArray)intarray1, inputarray1,0);
            env->ReleaseFloatArrayElements((jfloatArray)intarray2, inputarray2,0);
            return sum;
        }

谢谢!

1 个答案:

答案 0 :(得分:1)

你无法将jintArray神奇地转换为jFLoatArray,但你可以使用整数输入执行所有计算:

$('body').on('click', '[data-dialog-href]', function(e) {
    var studentName = $(this).data('studentName');
    console.log('Student Name : ' + studentName);
});