Returning and populating jintArray from jni

1.5k Views Asked by At

I'm trying to return a jintArray from C++ to Java but no matter what I do the call keeps hanging and the code just stops. Even with something simple like this

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;
    }

In java I'm doing

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

but the only output I get is

Start getting array

Is there something I'm doing wrong?

  • I tried creating a pointer from values[] and using that one in the SetIntArrayRegion

  • I tried populating the array myself by looping over it

  • I tried removing the ReleaseIntArrayElements

0

There are 0 best solutions below