我有一個靜態的方法叫做getCurrValue()
JNI CallStaticLongMethod總是返回0L
package com.my;
public class MyClass {
public static long value = 5L;
public static long getCurrValue(){
return value;
}
}
一個Java類和我在本地C/C++代碼的方法稱爲useValue(JNIEnv* env)
。 當我嘗試使用Java靜態方法getCurrValue()
獲取本機c/C++代碼中的value
時,我始終得到0L
作爲結果 - 爲什麼?
void useValue(JNIEnv* env) {
jclass clazz = env->FindClass("com/my/MyClass");
jlong result = -1L;
jmethodID get_curr_value_method_id = env->GetStaticMethodID(clazz,"getCurrValue","()J");
result = env->CallStaticLongMethod(clazz,get_curr_value_method_id);
// the result is 0L
}
您是否在通話後檢查異常? – EJP
@ EJP其實,我沒有發現任何異常。 – zh18
你檢查過嗎? – EJP