【发布时间】:2011-08-01 06:05:27
【问题描述】:
我在 java 中创建了一个字节数组,并通过引用 jni 函数来传递它。我在循环中执行此操作,有时会在 jni 中出现内存不足错误。我想知道java是否在每次迭代时自动释放数组,或者因为它被传递给jni函数,它不会??
JNI 代码(bOldArray 是我作为参数传递给 jni 的 java 字节数组)
len = (*env)->GetArrayLength(env,bOldArray);
char *oldBuff = (char *)calloc(sizeof(char),MAX_SIZE);
jbyte* bytes = (*env)->GetByteArrayElements(env,bOldArray,0);
memcpy(oldBuff,bytes,len);
(*env)->ReleaseByteArrayElements(env,bOldArray,(jbyte *)bytes,0);
【问题讨论】:
-
似乎仍然找不到错误。
标签: java-native-interface android-ndk bytearray