1

我从 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

我怎样才能得到 returnet 浮点数组?

4

3 回答 3

1

只需尝试使用jfloatArray imageArray = (jfloatArray) env->CallObjectMethod(Object,method); 它应该可以解决您的问题。

于 2013-07-11T11:48:46.923 回答
0

所有数组类型(甚至原始类型)都作为 a 返回,jobject然后您应该将其转换为适当的j<type>Array类型。

所以你的最后一行应该是:

jfloatArray rotateArray = (jfloatArray)env->CallObjectMethod(activityObj, method, s1, s2);
于 2013-04-15T21:22:32.693 回答
0

CallFloatMethod()用于调用返回的方法float。您正在调用一个返回的方法float[]。你应该打电话CallObjectMethod()

于 2013-04-16T01:38:26.297 回答