使用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