我在一个Android项目中使用JNI代码,其中JNI本地函数需要一个short[]参数。然而,原始数据存储在一个ByteBuffer中。我正在尝试将数据格式转换如下。
ByteBuffer rgbBuf = ByteBuffer.allocate(size);
...
short[] shortArray = (short[]) rgbBuf.asShortBuffer().array().clone();
但是,当我运行上面展示的第二行代码时,遇到了以下问题:
E/AndroidRuntime(23923): Caused by: java.lang.UnsupportedOperationException
E/AndroidRuntime(23923): at Java.nio.ShortToByteBufferAdapter.protectedArray(ShortToByteBufferAdapter.java:169)
有人能提供一种实现转换的方法吗?