1

我有一个这样的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 数组的专用函数,所以我只是将它视为一个对象并将其转换为一个对象数组。有什么提示吗?

谢谢!

4

1 回答 1

2

您的GetFieldID调用看起来返回 null。您需要删除类型中的分号,使其看起来像:

jfieldID paramsFid = env->GetFieldID(cls, "params", "[[F");

分号用于类名的末尾,而不是原始类型。

是关于 JNI 类型的一个很好的参考。

于 2013-08-16T18:55:30.887 回答