c 获得java数据_JNI:如何将一组数据从c转换为Java
我正在嘗試使用JNI將一些數據從c發送到java .
在c我有:
Array[0]:
string name = "myName"
int iterations = 16
float value = 15
... etc
所以我想使用JNI返回Java上的所有數據,我正在嘗試這個,但是不起作用
JNIEXPORT jobjectArray JNICALL Java_com_testing_data_MainActivity_getDATA(JNIEnv *env, jobject obj)
{
// 1o Create a temp object
jobject dataClass
{
jstring name;
jint iterations;
jfloat value;
};
jobject tempObject = env->NewObject();
// Get data in c++ format int temp object type
std::vector data = getDataClass(); // First error, must be a c++ class, how could i get it?
// How much memory i need?
int dataSize = data.size();
// Reserve memory in java format
jint tempValues[dataSize];
jobjectArray tempArray = env->NewObjectArray(dataSize,dataClass,0); // 2o Error, it doesn 't create the class
// Temporal store data in jarray
for (int i = 0; i < dataSize ; i++)
{
tempArray[i].name = data[i].name;
tempArray[i].iterations = data[i].iterations;
tempArray[i].value = data[i].value;
}
return tempArray; // return temp array
}
這個步驟是否正確返回帶有數據的結構/對象?如何修復錯誤?
總結
以上是生活随笔為你收集整理的c 获得java数据_JNI:如何将一组数据从c转换为Java的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 慢性扁桃体炎分哪三类
- 下一篇: 康齿宁丁硼口腔膏效果怎么样