将C++项目导出到 Android - JNI/JavaCPP/Visualgdb
Exporting C++ project to Android - JNI/JavaCPP/Visualgdb
我在尝试将我的opencv项目导出到Android时遇到了一个关键问题。由于我的所有代码都是在Visual Studio 2013下的opencv(C++版本),所以我开始研究JNI。我最终意识到,当我们导出 C 内容时,JNI 效果很好,因为名称重整被关闭了。这会影响我的C++代码吗?我认为它应该作为名称重整必须用于C++类函数。
然后我发现了JavaCPP。这似乎更有希望,但它的指针逻辑的额外开销似乎很奇怪,让我想到了创建 .so 文件的额外构建步骤。
最后,阅读有关Visualgdb的信息。虽然似乎在试用中,但以我喜欢Visual Studio,看起来很合理。
有人可以指导我必须遵循哪种方式在 android 中翻译/绑定我的代码,以便我可以导出我的 c++ 类吗?纯 JNI 在C++代码方面是否有真正的问题,而在 C 方面没有问题?或者我应该选择JavaCPP或visualgdb?
您的宝贵意见将不胜感激。
谢谢
AFAIK 你可以在你的 c++ 代码上使用 JNI,我正在使用它。但是,只有当你想用 c++ 编写所有代码并希望 java 在 java 端使用确切的 c++ 代码时,才应该使用 JNI。为此,您应该导出公共 API 中的所有函数。而且我必须说,传递自定义对象(如 Mat
、Rect
等)并不是一个很容易的问题,调试也不是直截了当的。我建议你使用OpenCV Java并将你的代码移植到Java。
祝你好运!
相关文章:
- 通过JNI传递数据数组的最快方法是什么
- 为 NewObjectA() 函数创建 jvalues 的参数数组时出错 - JNI Invocation API
- 将 C# DLL 导入 C++ 以用于 JNI
- 用C++包装 Java 库 (JNI)
- 如何通过 JNI 将 C 字符串表情符号传递给 Java
- JavaCPP 错误:无法将参数"1"的"char*"转换为"Abc*
- JNI从Android调用C++方法
- JVM 如何执行 JNI
- React Native (Android):无法通过 JNI 在 jobject 中返回字符串
- 如何将字符串数组返回到 java JNI
- JNI 日期值转换问题,在C++中获取不同的长整型值
- JNI,使用两个 .so 文件时出错,其中一个文件需要另一个文件
- Winapi - SetWindowLongPtr in ShutdownBlockReason创建/销毁JNI本机代码
- 将预编译的 C 共享库与 JNI/NDK 结合使用
- JNI 在应用程序中检测到错误:在为 innerclass 调用 NewObject 时使用了无效的 jobject
- 使用 jni 将返回带有模板的对象的 Java 代码转换为 c++
- 无法将DefineClass(JNI)与Qt资源一起使用
- 使用本机 JNI 静态方法实现C++ Java 运行时错误
- 从C++调用dll实现的JNI
- 将C++项目导出到 Android - JNI/JavaCPP/Visualgdb