JNI ネイティブ関数が short[] 引数を必要とする Android プロジェクトで JNI コードを使用しています。ただし、元のデータは ByteBuffer として格納されます。次のようにデータ形式を変換しようとしています。
ByteBuffer rgbBuf = ByteBuffer.allocate(size);
...
short[] shortArray = (short[]) rgbBuf.asShortBuffer().array().clone();
しかし、上記のコードの 2 行目を実行すると、次の問題が発生します。
E/AndroidRuntime(23923): Caused by: java.lang.UnsupportedOperationException
E/AndroidRuntime(23923): at Java.nio.ShortToByteBufferAdapter.protectedArray(ShortToByteBufferAdapter.java:169)
誰かが変換を実装する手段を提案できますか?