Dun*_*ang 10 java-native-interface android android-ndk
我需要从jni到Java获取字节数组.例如:我有一个字节数组byte [] a = {1,2,3,4,5,6}
JNIEXPORT jbyteArray JNICALL Java_com_vn_getArray (JNIEnv *env, jobject obj) {
jbyte[] a = {1,2,3,4,5,6};
return a;
Run Code Online (Sandbox Code Playgroud)
}
我不知道如何从jni返回一个字节数组.
有人能帮我吗?请!
The*_*vil 25
在Java中,数组是一个对象.因此,要将C或C++中的字节数组传递给java,您需要实例化一个jbyteArray,然后返回它.而不是C数组.要解决此问题,请参阅以下代码:
JNIEXPORT jbyteArray JNICALL Java_Test_returnArray
(JNIEnv *env, jobject This)
{
jbyte a[] = {1,2,3,4,5,6};
jbyteArray ret = env->NewByteArray(6);
env->SetByteArrayRegion (ret, 0, 6, a);
return ret;
}
Run Code Online (Sandbox Code Playgroud)
基于此链接
| 归档时间: |
|
| 查看次数: |
17619 次 |
| 最近记录: |