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