1、从java中传递过来一个二维数组,JNI获取到这个数组的 行和列; 并且获取到数组内的值来计算;
JNIEXPORT jdouble Java_com_example_test1_MyJni_Eig(JNIEnv *env, jobject,
jobjectArray arrayData)
用 jobjectArray传递数组,下面代码实现的是获取到这个数组的行和列
jint row = env->GetArrayLength(arrayData); //行数
jarray myarray = (jobjectArray) env->GetObjectArrayElement(arrayData, 0);
jint col = env->GetArrayLength(myarray); //得到列数
需要注意强制转换,要不会报错。下面代码是把值取出,
jdouble aa[row][col];
//取出数据从jobjectArray中
for (i = 0; i < row; i++) {
myarray = (jobjectArray) env->GetObjectArrayElement(arrayData, i);
jdouble *data = (*env).GetDoubleArrayElements((jdoubleArray) myarray,
0);
for (j = 0; j < col; j++) {
aa[i][j] = data[j]