看我在nativeLib中有本机功能
public native int [] getArrayNative();
我正在使用这个
private static int[] DEMO_NODES;
DEMO_NODES = nativeLib.getArrayNative();
在c代码中
JNIEXPORT jintArray JNICALL Java_com_testing_NativeLib_getArrayNative
(JNIEnv *env, jobject obj) {
int array[] = { 0, 1, 0, 1, 2, 1, 2, 3, 2, 3, 1, 2, 1, 2, 3, 2, 3, 1, 2 };
jintArray temp = (*env)->NewIntArray(env,20);
temp[0] = array[0]; // gives error
return temp;
}
这里我想要返回整个arry [],但我无法理解如何做到这一点。 在这里我采取了新的数组临时试图复制arry []的值,但它显示错误。那怎么办呢
答案 0 :(得分:4)
使用SetIntArrayRegion
来填充数组,jintArray
只是一些魔力
内部结构,你无法使用索引访问。
原型 void SetArrayRegion(JNIEnv * env,数组, jsize start,jsize len,* buf);