文字列のリストをJavaからJNIを介して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()行でクラッシュします。このプログラムの何が問題になっていますか?