java - 返回 native 字节缓冲区的 Java 方法的 JNI GetMethodID

标签 java android opencv java-native-interface

我需要从 Java 创建的 native 字节缓冲区创建 opencv::Mat。但是,当我尝试获取返回 ByteBuffer 的 java 方法的 methodID 时,出现段错误。我还包含了 onMeshGenerate 函数,因为从 JNI 获取和调用该方法没有任何问题。

Java 代码:

public void onMeshGenerated() {
    mOwner.onMeshGenerated();
}

public ByteBuffer getRGBData() {
    return mOwner.getRGBData();
}

JNI 代码:

JNIEXPORT void JNICALL Java_com_aquifi_facescan_Scanner3DNativeAPI_Start
  (JNIEnv * env, jobject obj)
{
    jclass cls = env->GetObjectClass(obj);
    javaOnMeshGeneratedMethodRef = env->GetMethodID(cls, "onMeshGenerated", "()V");
    javaOnGetRGBMethodRef = env->GetMethodID(cls, "getRGBData", "()Ljava/nio/ByteBuffer;");
    // Segfault on the line above
  .
  .
  .

}

如有任何建议,我们将不胜感激。

最佳答案

谢谢两位的回复。卸载应用程序、清理构建并重新启动 Eclipse 后,一切正常。

关于java - 返回 native 字节缓冲区的 Java 方法的 JNI GetMethodID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31443282/

相关文章:

java - OpenNLP find() 方法

java - 在 java 中构建 2D map 的其他方法

android - styles.xml (res\values\styles.xml) 和 styles.xml (res\values-v21\styles.xml) 之间的区别?

c++ - OpenCV cubic 与 lanzcos4 调整大小

java - java中如何检查数组a是否是数组b的一部分?

java 。 Swing 。 JComponent 的可点击区域

android - 将自定义布局添加到生物识别提示

android - 带有图像的 Xamarin ListView 滚动不流畅

image - 估计两个图像之间的仿射变换

python - 直方图均衡:未获得所需的输出图像