4

看到我在 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[] 但我不明白该怎么做。在这里,我采用了新的数组 temp,试图复制 arry[] 的值,但它显示错误。那么怎么做

4

1 回答 1

4

用于SetIntArrayRegion填充数组,jintArray只是一些神奇的内部结构,没有任何东西可以使用索引访问。

原型void SetArrayRegion(JNIEnv *env, array, jsize start, jsize len, *buf);

于 2012-04-23T09:53:03.417 回答