我正在从jni调用java方法。这个方法返回一个float []
jclass javaClass = env->GetObjectClass(activityObj);
jmethodID method = env->GetMethodID(javaClass,"findparam", "([FF)F");
jfloatArray rotateArray = env->CallFloatMethod(activityObj, method, s1, s2);
但是当我试图编译它时,我有:
error: cannot convert 'jfloat' to '_jfloatArray*' in initialization
我怎样才能获得者返回float array?
答案 0 :(得分:1)
尝试使用jfloatArray imageArray = (jfloatArray) env->CallObjectMethod(Object,method);
它应该可以解决你的问题。
答案 1 :(得分:0)
所有数组类型(甚至原始类型)都以jobject
的形式返回,然后您应该将其转换为相应的j<type>Array
类型。
所以你的最后一行应该是:
jfloatArray rotateArray = (jfloatArray)env->CallObjectMethod(activityObj, method, s1, s2);
答案 2 :(得分:0)
CallFloatMethod()
用于调用返回float
的方法。您正在调用返回float[]
的方法。你应该打电话给CallObjectMethod()
。