0
爲什麼這個JNI代碼沒有返回值nbField?爲什麼這個JNI代碼沒有返回正確的值?
JNIEXPORT jint JNICALL Java_com_morpho_morphosmart_sdk_MorphoDatabaseNative_getNbField
(JNIEnv *i_env, jobject thisObj, jlong morphoDatabasePointerCPP, jobject nbField){
I l_i_Ret;
UL l_ul_NbField;
l_i_Ret = dataBase->GetNbField(l_ul_NbField);
// l_ul_NbField is equal 2 after here
if(l_i_Ret == 0) // l_i_Ret is not null
{
jclass longClass = i_env->GetObjectClass(nbField);
jfieldID val = i_env->GetFieldID(longClass, "value", "J");
if(val == NULL)
return -899;
i_env->SetLongField(nbField, val, (L)l_ul_NbField);
// nbField is an output value wich is expected to have the value 2 after here !
}
return l_i_Ret; }
此代碼導致返回0,但nbField爲空! 的Java調用者
long nbField = 0 ;
int l_i_ret = morphoDatabase.getNbField(nbField);
Log.d("GetNBFields","after getNBFields : "+ nbField + " r : " + l_i_ret);
的問題是在這部分代碼,nbField
不返回l_ul_NbField
值。
「不工作」不是很精確... – dqms
已更新,未返回值'nbField'... – DrDree
顯示更多jni?你的make文件是什麼樣的?如果有構建錯誤,構建錯誤是什麼? –