android - 使用JNI获取arrayList的元素

标签 android opencv android-ndk java-native-interface

我正在使用OpenCV计算一些算法,但是现在我想将其转换为Java代码,在Java代码中,我的程序有一个方法:

public native float[] computeFeatures(ArrayList<float[]> listData);

现在,我正在使用javah生成头文件,在jni中,此方法如下所示:
JNIEXPORT jfloatArray JNICALL Java_cspdemo_CSPTest_computeFeatures (JNIEnv *, jobject, jobject);

如何在JNI中获取listData核心的元素(每个float数组,例如listData1 = {1,3,4,0};)?请帮助我,谢谢!

最佳答案

使用size方法获取集合中的数组数。

然后循环使用get方法获取数组。

然后,对于每个数组,请使用GetFloatArrayElements JNI API。

关于android - 使用JNI获取arrayList的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24131187/

相关文章:

android - 如何创建 NDK AMediaMuxer?

java - 在 Android 中使用带有 include 标签的多个布局

android - Pixel、Allo 和 Android 6.0+ 设备的 Actions on Google 发布日期?

java - 如何从包含字符串的Arraylist中获取索引

c++ - 特征检测器不在 OpenCV 3.0.0 中?

c++ - 带有 CUDA 的 OpenCV,非常清楚的错误消息,但无法弄清楚为什么?

android - 警告 : ABIs [armeabi-v7a, armeabi] 由 'android.injected.build.abi' 设置的 gradle 标志包含 'ARMEABI' 不是此项目的目标

android - 谷歌应用内购买取消用户订阅

opencv - Imagemagick 的 `+distort DePolar` 的 OpenCV 等价物是什么

c++ - Android ndk编译SoundTouch Library报错