String を返す Java インスタンス メソッドがあり、C++ で JNI を介してこのメソッドを呼び出しています。私は次のコードを書きました:
const char *DiagLayerContainer_getDESC(JNIEnv *env, jobject diagLayer) {
jclass diagLayerClass = env->FindClass(PARSER_CLASS);
jmethodID getDESCDiagLayerMethodID = env->GetMethodID(diagLayerClass, "getDESCDiagLayer", "(Ljava/lang/Object;)Ljava/lang/String;");
jstring returnString = (jstring) env->CallObjectMethod(diagLayer, getDESCDiagLayerMethodID);
return env->GetStringUTFChars(returnString, JNI_FALSE);
}
文字列を取得して const char * に変換するにはどうすればよいですか?
プログラムが最後の行で 0x00000000 へのアクセス違反でクラッシュします。returnString は NULL ではありません。