jobjectArray vectorToArray(JNIEnv * env, vector<vector<double>> vec){
jobjectArray objArray;
jclass doubleArray = env->FindClass("[D");
if (doubleArray == NULL) return NULL;
int size = vec.size();
objArray = env->NewObjectArray(size, doubleArray, NULL);
if (objArray == NULL) return NULL;
for (int i = 0; i < size; i++) {
jdouble tmp[256];
int j;
int size2 = vec[i].size();
jdoubleArray iarr = env->NewDoubleArray(size2);
if (iarr == NULL) return NULL;
for (j = 0; j < size2; j++) {
tmp[j] = vec[i][j];
}
env->SetDoubleArrayRegion(iarr, 0, size2, tmp);
env->SetObjectArrayElement(objArray, i, iarr);
env->DeleteLocalRef(iarr);
}
return objArray;
}
java端调用,用Object[]接收即可,c++调用类型设置([Ljava/lang/Object;)V
<audio controls="controls" style="display: none;"></audio>