如何解决使用 JNI 从 C++ 返回一个具有二维数组的 Java 对象
我有一个 Java 对象:
arrayNotes = [[2287,3474],[2268,3430],[2255,3398],3360]];
console.log("bad:");
console.log(`DrawShape('${arrayNotes}')`);
console.log("good:");
console.log(`DrawShape(${JSON.stringify(arrayNotes)})`);
我正在尝试使用 JNI 从 C++ 返回 JAVA 对象。我可以同时设置 INT 和一维数组成员变量。 但是我在尝试设置二维数组方面没有成功。
正如我所提到的:我可以设置 numberOfROI (int) 和 ptrToNumberOfPointsInEachROI 一维数组。但未能设置ptrToROIListContaingROI,这是一个二维数组。
int numberOfROI;
int ptrToNumberOfPointsInEachROI[];
double ptrToROIListContaingROI[][];
}
解决方法
您尚未初始化 rows
。要创建新的 double[][]
,您需要执行以下操作:
jclass double_array_class = env->FindClass("[D");
jobjectArray rows = env->NewObjectArray(2,double_array_class,NULL);
此外,您不应该像在 rows
中那样尝试下标 printf
。它持有(或指向)对 Java 数组的引用,但它本身不是数组。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。