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

我有一个字符串数组一样{"myname","yourname","hisname"},我想这个数组发送到 ç 使用 JNI

。我找不到任何明确的解决方案。我试图将此字符串视为chararray成功,但没有成功。

有没有办法做到这一点?

回答:

您可以编写一个简单的函数,该函数接受一个jobjectArray对象,将每个对象强制转换为jstring,然后对其进行调用GetStringUTFChars

像这样:

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.

}

}

以上是 使用JNI将字符串数组从Java传递到C 的全部内容, 来源链接: utcz.com/qa/425229.html

回到顶部