JNIネイティブ関数がshort []引数を必要とするAndroidプロジェクトでJNIコードを使用しています。ただし、元のデータはByteBufferとして格納されます。私は次のようにデータ形式を変換しようとしています。ByteBufferからshort []を取得する方法
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)
を誰もが、変換を実装するための手段を提案してもらえますか?
もう少し詳しくallocateDirect()を使って説明できますか?以来、私はアンドロイドのドキュメントからのヒントは見つかりません。 – bei
提出された[バグレポート](http://code.google.com/p/android/issues/detail?id=24327)に基づいた勘違いです。それは無関係かもしれないが、私はそれが言及する価値があると思った。 – Eric
これで同じエラーが発生します。 –