如何通过在JNI中传递矢量对象来调用Java方法(使用C ++)?我有这样的事情:
爪哇:
#include <iostream>
#include <tuple>
using namespace std;
int main()
{
int x = 4;
int y = 6;
int z = 8;
cout << x<< y<<z;
tie(x, y, z) = make_tuple(y, z, x);
cout << x << y << z;
getchar();
return 0;
}
C ++:
public void methodOne(int[] data) {
...
}
我已尝试过上述内容 即使将dataVector转换为int数组
,我也会收到SIGABRT错误答案 0 :(得分:0)
我必须做这样的事情:
void mNativeMethod(std::vector<int> dataVector)
{
unsigned long size = dataVector.size();
jfloat outCArray[size];
std::copy(dataVector.begin(), dataVector.end(), outCArray);
jfloatArray outJNIArray = jniEnv->NewFloatArray(size);
jniEnv->SetFloatArrayRegion(outJNIArray, 0, size, outCArray);
jniEnv->CallVoidMethod(jObject, jMethodOne, outJNIArray);
}