0
充分利用JNI通過CheckJNI以下異常。JNI例外:jarray是一個無效的全球參考
JNI DETECTED ERROR IN APPLICATION: jarray is an invalid global reference: 0x8f635e1e (0xdead4321)
偏偏期間:
uint32_t* indexes = ConvertIntArray(env, cls, planeLengths);
它是:
jlong Java_<censored>(JNIEnv *env, jclass cls, jlong state, jintArray planeLengths)
一切都發生上面的功能,所以沒有全球性的參考文獻中
uint32_t* ConvertIntArray(JNIEnv *env, jclass cls, jintArray intArray)
{
return (*env)->GetIntArrayElements(env, intArray, NULL);
}
這是從所謂的製成。 planeLengths直接傳遞給ConvertIntArray,它應該返回它的uint32指針。 Google也沒有JNI錯誤的結果。
注:以上線路是所有的C預處理完成後。有幾個宏可以替代不同的代碼,這就是爲什麼ConvertIntArray函數似乎毫無意義。
我的同事和我都難倒。有什麼想法嗎?
哪裏'planeIndexes'從何而來?你的JNI函數接收一個'jintArray',但是那個被稱爲'planeLengths'。 – Michael
我的不好。我截斷了大部分的論點,但是把錯誤的論點留在後面。 –
我會說你有其他地方的內存損壞。 – EJP