2回の呼び出しの後、JniメソッドがJVMをクラッシュする

さて、私の問題は、Jniを使ってJavaアプリケーションから呼び出すC ++メソッドがあることです。問題は、メソッドが最初の呼び出しではうまく動作するが、2回目に呼び出されると、JVMがクラッシュすることです。表示されるエラーがあります。

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x77d0e39e, pid=3776, tid=3100
#
# JRE version: 6.0_29-b11
# Java VM: Java HotSpot(TM) Client VM (20.4-b02 mixed mode, sharing windows-x86 )
# Problematic frame:
# C  [ntdll.dll+0x2e39e]
#
# An error report file with more information is saved as:
# C:\Users\OPTIMAL1\workspace\XtremeGUI\hs_err_pid3776.log
#
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#

Jniを使ってJavaアプリケーションから呼び出されるC ++メソッドは次のとおりです。

JNIEXPORT void JNICALL Java_MainFrame_Jni_Functions_displayParameterResults  (JNIEnv *env, jobject obj){

cout << "begin!!!!!!!!!!!!!!" << endl;

cout << "before!!!!!!!!!!!!!!" << endl;
jclass jclazz = env->FindClass("MainFrame/Jni/TablesObjects");
cout << "after***************" << jclazz <NewDoubleArray(size);
env->SetDoubleArrayRegion(jdblArr, 0, size, jdbl);


jclass jStringClass   = env->FindClass("java/lang/String"); 
jobjectArray jStringArray = env->NewObjectArray(6, jStringClass, 0);
for(int i=0; i<6; i++)
    env->SetObjectArrayElement(jStringArray, i, env->NewStringUTF("a") );


jmethodID mid = env->GetStaticMethodID(jclazz, "resultsParameterInsertCol", "([Ljava/lang/Object;[D)V");
env->CallStaticVoidMethod(jclazz, mid, jStringArray, jdblArr);

cout << "end!!!!!!!!!!!!!!" << endl;
}

EDIT : The problem is solved. There wasn't any syntax/coding error. The error was due to a global object declaration that I needed to re-declare locally.

3
問題は解決しました。シンタックスエラーではなく、オブジェクト宣言エラーです。問題は、メソッドで使用されているオブジェクトがグローバルに定義され、各呼び出しでリセットされたことでした。それは、メソッド内のオブジェクトを再宣言した後で働きました(グローバル宣言も保存しました)。
追加された 著者 Jsncrdnl,
あなたの第二の呼び出しはどこまで手に入りますか?ローカル参照を削除することは決してありません。おそらくそれを行うべきです。
追加された 著者 Roger Lindsjö,
もう少しプリントアウトを追加して、上の方法でクラッシュを突き止めることができますか?
追加された 著者 Ben van Gompel,

答えはありません

0