我正在用 Java 进行 Android 开发,其中一些本机部分(外部库)是用 C++ 编写的。
我想将一个 byte[] 从托管(Java)应用程序传递到本机(C++)库:
// Declaration for the native method in Java
private native void someMethod(byte[] data);
在本机方面,我想使用字节数组作为另一个提供的本机函数的参数。
我已经阅读了有关将数组数据转换(复制)为兼容类型(GetByteArrayElements)的 JNI 方法,但是这给我留下了jbyte *类型,这与我正在使用的库不兼容(该库定义了它自己的nByte类型,它是一个无符号字符)。
这种情况下的最佳选择是什么?
我应该坚持使用 JNI 描述的方法,并将 jbyte 数组类型转换为适当的 nByte 数组吗?还有其他选择吗?