gpt4 book ai didi

android - 如何从 C 将 int 数组发送到 Java 代码

转载 作者:行者123 更新时间:2023-11-29 00:38:42 32 4
gpt4 key购买 nike

在 Android 平台上,我在 native 代码中分配了一个 int 数组

mBuffer = new int[BUFSIZE];

我想把这个发到Java端,Java方法是这个

public void WriteBuffer(int[] buffer, int size) 
{

}

我这样回调java代码

const char* callback = "WriteBuffer";

mWriteMethod = env->GetMethodID(cls, callback, "([II)V");

这调用了 java 方法,只是在我的 Java 代码中缓冲区为空。因为我真的传递了一个指向动态分配的内存而不是实际数组的指针,这可能是它不起作用的原因,但我不知道如何将指针传递给 Java。无论如何,我需要缓冲区参数作为 Java 端的整数数组。

有人知道我如何修改上面的内容以使其正常工作吗?

谢谢

最佳答案

我对你的问题的理解是你想调用 java 方法 WriteBuffer 并传递一个 int[] 给它。
jni 中需要的一些伪代码

jintArray buffer; 
buffer= (*env)->NewIntArray(env, BUFSIZE);
(*env)->SetIntArrayRegion(env, buffer, 0,BUFSIZE, mBuffer);

SetIntArrayRegion() 将从 mBuffer 复制到 Java 数组。

关于android - 如何从 C 将 int 数组发送到 Java 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10980331/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com