从java返回一个float数组到jni

时间:2013-04-15 14:34:34

标签: java android java-native-interface

我正在从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?

3 个答案:

答案 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()