我在一个 JNI 本机函数需要一个短 [] 参数的 Android 项目中使用 JNI 代码。但是,原始数据存储为 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)
任何人都可以提出一种实现转换的方法吗?