我在运行 openCV 示例项目 (3 - 4) 时遇到问题。每次运行该程序时,我都发现我的 Android 模拟器中显示“不幸的是 OpenCV 管理器已停止”的问题。

每次我打电话都会出现问题

OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_3, this, mLoaderCallback);

我关注了这个页面
http://docs.opencv.org/doc/tutorials/introduction/android_binary_package/dev_with_OCV_on_Android.html

这是我收到的警告信息



Logcat(来自 OpenCV 示例 4):



笔记:

  • 我将 Java 合规性级别设置为 1.6,因为我在编译 OpenCV c++ 文件时遇到了一些问题。
    (跟随这个页面: 'Must Override a Superclass Method' Errors after importing a project into Eclipse )
  • 我用 OpenCV_2.4.3_binary_pack_armv7a.apk 和 OpenCV_2.4.3_Manager_2.0_armeabi-v7a.apk 安装 adb
  • 我使用三星 Galaxy S 作为我的手机模拟器
  • 最佳答案

    我遇到了同样的问题:
    隐藏符号 '__aeabi_atexit' armeabi-v7a/libgnuSTL_static.a(atexit_arm.o) 被 DSO 引用

    我在 jni 中使用 opencv 测试,在我添加它之前有一个工作正常的应用程序。
    我试图在“Application.mk”中将 ARMv7-A 机器更改为 armeabi
    我还尝试将上面提到的所有路径添加到 Project -> Properties -> C/C++ General -> Path and Symbols。

    它没有用。
    感谢我的团队领导,我找到了解决方案:

    在 Application.mk 中,您需要更改 APP_STL := gnuSTL_static
    到 APP_STL := gnuSTL_shared。这是因为 lib 显然是在共享而不是静态中编译的。
    另外,在loadlibrary区添加lib:System.loadLibrary("gnuSTL_shared");
    这应该在静态区域中完成,如下所示:

    static {
           try{
               System.loadLibrary("gnustl_shared");
               //To do - add your static code
           }
           catch(UnsatisfiedLinkError e) {
                Log.v(TAG, "Native code library failed to load.\n" + e);
           }
           catch(Exception e) {
                Log.v(TAG, "Exception: " + e);
           }
       }
    

    就是这样!它解决了我的问题...
    希望它有所帮助。

    英巴尔

    关于android - 不幸的是,OpenCV 管理器已在 OpenCV 2.4.3 for android 4.2 (Mac OSX 10.7) 中停止,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13447322/

    10-12 02:39