我有一个像这样的Java类:
class Blah{
float[][] params;
}
在JNI,我尝试过这样的参数:
jclass cls = env->GetObjectClass(obj);
jfieldID paramsFid = env->GetFieldID(cls, "params", "[[F;");
jobjectArray paramArray = (jobjectArray)env->GetObjectField(obj, paramsFid);
但它总是在GetObjectField上失败,我找不到2D数组的专用函数,所以我只是将它作为一个对象处理并将其转换为一个对象数组。任何提示?
谢谢!
答案 0 :(得分:2)
您的GetFieldID
调用看起来像是返回null。您需要删除该类型中的分号,如下所示:
jfieldID paramsFid = env->GetFieldID(cls, "params", "[[F");
分号用于类名的末尾,而不是基本类型。
This是对JNI类型的一个很好的参考。