私は Java で Android 開発を行っており、一部のネイティブ パーツ (外部ライブラリ) は C++ で記述されています。
マネージド (Java) アプリケーションからネイティブ (C++) ライブラリに byte[] を渡したい:
// Declaration for the native method in Java
private native void someMethod(byte[] data);
ネイティブ側では、別の提供されたネイティブ関数への引数としてバイト配列を使用したいと思います。
配列データを互換性のある型 ( GetByteArrayElements )に変換 (コピー) するための JNI メソッドについて読みましたが、使用しているライブラリと互換性のないjbyte *型が残ります (ライブラリは独自のnByteを定義します)。タイプ、これは unsigned char です)。
このシナリオに最適なオプションは何ですか?
JNI を使用して説明した方法に固執し、jbyte 配列型を適切な nByte 配列に変換する必要がありますか? 他のオプションはありますか?