从jni返回并填充jintArray

时间:2015-08-14 11:39:42

标签: c++ arrays java-native-interface jint

我正在尝试将jintArray从C ++返回到Java,但无论我做什么,调用都会挂起,代码就会停止。即使是像这样简单的事情

JNIEXPORT jintArray JNICALL Java_main_getIntArray(JNIEnv *env, jclass c) {
        jintArray intArray = env->NewIntArray(5);
        jint values[5] = {69, 69, 69, 69, 69};

        env->SetIntArrayRegion(intArray, 0, 5, values);
        env->ReleaseIntArrayElements(intArray, values, NULL);
        return intArray;
    }

在java中我正在做

System.out.println("Start getting array");
System.out.println("Array: " + Arrays.toString(getIntArray()));
System.out.println("Done getting array");

但我得到的唯一输出是

  

开始获取数组

我有什么问题吗?

  • 我尝试从values []创建一个指针,并在SetIntArrayRegion中使用该指针

  • 我尝试通过循环遍历数组来填充数组

  • 我尝试删除ReleaseIntArrayElements

0 个答案:

没有答案