0

我是为 android 应用程序开发本机代码的新手。实际上,我要为 android 测试一些原生 OpenCV 示例。我正在使用 Eclipse。我在编译人脸检测示例时发现了一些错误。我可以按照本教程纠正大部分错误

  • 我定义了我的环境变量 NDK-root
  • 在 Android.mk 上激活一些配置

控制台结果是库 .so 已正确构建,如下所示:

[armeabi-v7a] 安装:libdetection_based_tracker.so => libs/armeabi-v7a/libdetection_based_tracker.so [armeabi-v7a] 安装
:libnative_camera_r2.2.0.so => libs/armeabi-v7a/libnative_camera_r2.2.0.so [armeabi-v7a ] 安装
:libnative_camera_r2.3.3.so => libs/armeabi-v7a/libnative_camera_r2.3.3.so [armeabi-v7a] 安装
:libnative_camera_r3.0.1.so => libs/armeabi-v7a/libnative_camera_r3.0.1.so [armeabi-v7a ] 安装
:libnative_camera_r4.0.0.so => libs/armeabi-v7a/libnative_camera_r4.0.0.so [armeabi-v7a] 安装
:libnative_camera_r4.0.3.so => libs/armeabi-v7a/libnative_camera_r4.0.3.so [armeabi-v7a ] 安装
:libnative_camera_r4.1.1.so => libs/armeabi-v7a/libnative_camera_r4.1.1.so [armeabi-v7a] 安装
:libnative_camera_r4.2.0.so => libs/armeabi-v7a/libnative_camera_r4.2.0.so [armeabi-v7a] 安装
:libopencv_java.so => libs/armeabi-v7a/libopencv_java.so

但是在运行应用程序时,jni 文件中出现了一个语法错误:« DetectionBasedTracker_jni.cpp »,在两个地方:

1- 结果 = (jlong​​)new DetectionBasedTracker(stdFileName, DetectorParams); 错误 =type 'DetectionBasedTracker'could not be resolved

2- ((DetectionBasedTracker*)thiz)->getObjects(RectFaces); 错误 :Invalide arguments 'Candidates are : void getObjects(?&)'

请参阅所附图片

  • 错误 1
  • 错误 2

我不明白为什么会出现这些错误,因为我从未接触过原始代码?任何想法来纠正这些错误?

4

2 回答 2

1

您的项目中缺少 DetectionBasedTracker_jni.h。一般都包含,不知道为什么没有。它可能会导致您的错误,但这只是一个提示。

timurDroid

在 Eclipse 中我总是遇到这个错误,但是在关闭 cpp 文件并重新启动 IDE Eclipse 后,应用程序成功运行。不知道,为什么。。

我相信您所谈论的异常可能是一个不同的问题,因为在这种情况下,您有很多包含 的错误消息could not be resolved,如果您只有那个(少数,不是全部),请纠正我。对我来说,如果我打开这些 jni 文件,“一切都无法解决”,因为(我只是在猜测)prebuild-linking eclipse bugish 问题。

于 2013-11-14T11:23:55.357 回答
-1

最后!!。我通过重新创建一个新项目解决了这个问题,然后将 src 文件导入。现在它工作正常!

于 2013-12-05T12:17:01.690 回答