且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

传递字符串数组从Java到C用JNI

更新时间:2023-02-12 16:33:59

您可以编写一个简单的函数,它接受一个 jobjectArray 对象,铸就每一个的jstring,然后调用 GetStringUTFChars 就可以了。

You can write a simple function that takes a jobjectArray object, cast each one to jstring and then call GetStringUTFChars on it.

这样的:

void MyJNIFunction(JNIEnv *env, jobject object, jobjectArray stringArray) {

    int stringCount = env->GetArrayLength(stringArray);

    for (int i=0; i<stringCount; i++) {
        jstring string = (jstring) (env->GetObjectArrayElement(stringArray, i));
        const char *rawString = env->GetStringUTFChars(string, 0);
        // Don't forget to call `ReleaseStringUTFChars` when you're done.
    }
}