В нативной функции с аргументом jbyteArray я хочу передать данные обратно в вызывающее приложение, используя SetByteArrayRegion.
Я хотел бы изменить размер массива, чтобы он точно соответствовал данным, возможно ли это?
Нет, это невозможно, так же как вы не можете изменить размеры массивов в Java.
Вам необходимо создать и вернуть новый массив.
Вы не можете. Массивы фиксированного размера в Java.
Возможным решением будет использование другой структуры данных (например, ArrayList), или вы можете создать jbyteArray правильного размера и позволить нативной функции вернуть это.