[英]return a float array from java to jni
I'm calling a java method from jni.This method return a float[] 我正在从jni调用java方法。此方法返回float []
jclass javaClass = env->GetObjectClass(activityObj);
jmethodID method = env->GetMethodID(javaClass,"findparam", "([FF)F");
jfloatArray rotateArray = env->CallFloatMethod(activityObj, method, s1, s2);
But when i tried to compile it i had : 但是当我尝试编译它时,我有:
error: cannot convert 'jfloat' to '_jfloatArray*' in initialization
how can i get the returnet float array?? 我怎样才能得到返回浮点数数组?
Just try to use jfloatArray imageArray = (jfloatArray) env->CallObjectMethod(Object,method);
只需尝试使用
jfloatArray imageArray = (jfloatArray) env->CallObjectMethod(Object,method);
It should resolve your problem . 它应该可以解决您的问题。
All array types (even primitive types) are returned as a jobject
which you should then cast to the appropriate j<type>Array
type. 所有数组类型(甚至是基本类型)都作为
jobject
返回,然后应将其jobject
转换为适当的j<type>Array
类型。
So your final line should read: 因此,您的最后一行应为:
jfloatArray rotateArray = (jfloatArray)env->CallObjectMethod(activityObj, method, s1, s2);
CallFloatMethod()
is for calling methods that return float
. CallFloatMethod()
用于调用返回float
方法。 You are calling a method that returns float[]
. 您正在调用一个返回
float[]
。 You should be calling CallObjectMethod()
. 您应该调用
CallObjectMethod()
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.