2013-03-20 25 views
0

我的java類「PMS」中有一個HashMap變量「AA」。現在我想在cpp文件中訪問「AA」。我使用JNI來解決這個問題。這裏是我的代碼:在C++中訪問HashMap變量

jclass clazz=env->FindClass("com/pms/PMS"); 
jfieldID field=env->GetStaticFieldID(clazz, "AA", "Ljava/util/HashMap"); 
jobject objPackages=env->GetStaticObjectField(clazz,field); 

,但我得到的 「java /郎/ NoSuchFieldError」,那就是 「AA」 無法找到。然後我試試這個:

jclass clsPackages=env->FindClass("com/pms/PMS$AA"); 

這一次我得到的 「java /郎/ NoClassDefFoundError錯誤」。我應該怎麼做?

+0

請提供來自Java源的字段'AA'的聲明。它真的被宣佈爲「靜態」嗎? – jop 2013-03-20 08:59:36

回答

0

我想在你的代碼的第二行應該是:在最後

jfieldID field=env->GetStaticFieldID(clazz, "AA", "Ljava/util/HashMap;");

分號。它是語法的一部分。我忘記了爲什麼。

a

+0

是的,它工作。我很粗心,我忘記了分號。非常感謝你。 – Caroline 2013-03-21 02:20:43

+0

不客氣。很高興我能幫上忙。 – Alain 2013-03-21 13:47:43