Я пытаюсь передавать данные с ноутбука на нативный код в телефоне Android.Я могу подключиться к ноутбуку и получить данные в течение некоторого времени, но нативный код вылетает со следующим сообщением позже:
"не удалось добавить в таблицу ссылок закрепленного массива JNI".
Фрагмент кода:
// Java-код для обработчика чтения Bluetooth
case MESSAGE_READ:
byte [] readBuf = (byte []) msg.obj;
// Отправкаданные в буфере для собственного кода sendData (readBuf, msg.arg1);
........................................................................
// C-код:
... sendData (JNIEnv * env, jclass cl, jbyteArray arr, размер jint)
{
.....
jbyte buffer = (jbyte ) env-> GetByteArrayElements (arr, & isCopy);
.... // скопировать буфер в локальную переменную.
if (isCopy == JNI_TRUE) {
env-> ReleaseByteArrayElements (arr, buffer, JNI_ABORT);
}
Что может быть не так?Я уже использую подобный код для передачи массива между Java и C в другом месте кода, и это прекрасно работает.