0
CheckJNI経由でJNIから次の例外を取得しています。JNI例外:jarrayは無効なグローバル参照です
jlong Java_<censored>(JNIEnv *env, jclass cls, jlong state, jintArray planeLengths)
すべてがそれほどないグローバル参照上記関数内で行わ:である
uint32_t* indexes = ConvertIntArray(env, cls, planeLengths);
:
uint32_t* ConvertIntArray(JNIEnv *env, jclass cls, jintArray intArray)
{
return (*env)->GetIntArrayElements(env, intArray, NULL);
}
から呼び出される:
JNI DETECTED ERROR IN APPLICATION: jarray is an invalid global reference: 0x8f635e1e (0xdead4321)
が中に発生します作られています。 planeLengthsは直接ConvertIntArrayに渡され、そのポインタはuint32ポインタを返すべきです。 GoogleはJNIエラーの結果も表示していません。
注:上記の行は、すべてのC前処理が完了した後のものです。異なるコードで置き換えられるいくつかのマクロがあります。その理由は、ConvertIntArray関数が無意味に見える理由です。
私の仲間と自分自身が困惑しています。何かご意見は?
'planeIndexes 'はどこから来たのですか?あなたのJNI関数は 'jintArray'を受け取りますが、それは' planeLengths'と呼ばれます。 – Michael
私の悪い。私は議論のほとんどを切り捨てましたが、間違ったものを残しました。 –
私はあなたがどこか他の場所でメモリ破損していると言います。 – EJP