我在尝试将我的opencv项目导出到android时遇到了一个严重的问题。由于我所有的代码都是在visual studio 2013下的opencv (C++版本)中编写的,所以我开始研究JNI。我最终意识到,当我们导出C代码时,JNI工作得很好,因为名称损坏被关闭了。这会影响我的C++代码吗?我认为它应该存在于C++类函数中,因为名称损坏必须存在。
然后我发现了JavaCPP的事。这看起来更有前途,但是额外的开销,它的指针逻辑似乎很奇怪,我想不通了,而且还需要额外的构建步骤来创建.so文件。
最后,请阅读Visualgdb。虽然看起来还在试用中,但以我对Visual studio的喜爱,看起来还算合理。
有人可以指导我在android中翻译/绑定我的代码,这样我就可以导出我的c++类了吗?普通的JNI在C++代码上有真正的问题,而在C语言上没有问题吗?或者我应该选择JavaCPP或visualgdb?
我们将非常感谢您的宝贵意见。
谢谢
发布于 2014-04-06 15:55:23
你可以在你的c++代码上使用JNI,我正在使用它。但是,只有当你想用c++编写所有代码,并且想让java在Java端使用完全相同的c++代码时,你才应该使用JNI。为此,您应该导出您的公共API中的所有函数。我必须说,传递Mat、Rect等自定义对象并不是一个很容易的问题,而且调试也不是很简单。我建议您使用OpenCV Java并将您的代码移植到Java。
祝好运!
https://stackoverflow.com/questions/22846748
复制相似问题