我有一个这样的 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 数组的函数,所以我只是将其视为一个对象并将其转换为对象数组。有什么提示吗?
谢谢!
最佳答案
您的 GetFieldID
调用看起来返回 null。您需要删除类型中的分号,使其看起来像:
jfieldID paramsFid = env->GetFieldID(cls, "params", "[[F");
分号用在类名的末尾,而不是原始类型。
This是关于 JNI 类型的很好的引用。
关于android - 使用 JNI 在 C++ 中访问二维数组字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12051770/