I've encountered a weird bug that a java.nio.buffer which is returned by asReadOnlyBuffer() method, could randomly 8 bits shift on get() result (mostly it's left shift).
I have no clue, but stop using buffer that returned by asReadOnlyBuffer() works fine. This issue only happens on Android N.