我需要通过 JNI 将字符串列表从 Java 传递到 C。我的 Java 程序传递一个 List 参数,而 C 程序接受一个列表。
下面是我尝试过的代码。
JNIEXPORT jobject JNICALL Java_jni_CallJNIfunction(JNIEnv *env,
jobjectArray jParameters){
list<const char*> cParameters;
jsize stringCount = env->GetArrayLength(jParameters);
for (int i=0; i<stringCount; i++) {
jstring arrElement = (jstring) (env->GetObjectArrayElement(jParameters, i));
const char* nativeElement = env->GetStringUTFChars( arrElement, NULL);
cParameters.push_back(nativeElement);
env->ReleaseStringUTFChars(arrElement, nativeElement);
}
CallCfunction(cParameters);
}
但是我的 JVM 在 GetStringUTFChars() 行崩溃了。这个程序有什么问题?