Android Studio中的OpenCV无法正常工作?

乔治

我正在尝试将本机代码添加到我的Android应用程序。NDK在简单的C ++代码(例如“ C ++中的Hello”)中可以很好地工作,但是我需要使用openCV,这很困难。

项目构建输出:

:app:generateArmDebugSources UP-TO-DATE
:app:compileArmDebugJava UP-TO-DATE
:app:compileArmDebugNdk
D:/android-ndk-r10c/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: D:\AndroidStudioProjects\OpenCVFeatureDetection\app\build\intermediates\ndk\arm\debug\obj/local/armeabi-v7a/objs-debug/jni_part/D_\AndroidStudioProjects\OpenCVFeatureDetection\app\src\main\jni\jni_part.o: in function cv::Mat::~Mat():jni_part.cpp(.text._ZN2cv3MatD2Ev+0x3c): error: undefined reference to 'cv::fastFree(void*)'
D:/android-ndk-r10c/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: D:\AndroidStudioProjects\OpenCVFeatureDetection\app\build\intermediates\ndk\arm\debug\obj/local/armeabi-v7a/objs-debug/jni_part/D_\AndroidStudioProjects\OpenCVFeatureDetection\app\src\main\jni\jni_part.o: in function cv::Mat::release():jni_part.cpp(.text._ZN2cv3Mat7releaseEv+0x6c): error: undefined reference to 'cv::Mat::deallocate()'
D:/android-ndk-r10c/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: D:\AndroidStudioProjects\OpenCVFeatureDetection\app\build\intermediates\ndk\arm\debug\obj/local/armeabi-v7a/objs-debug/jni_part/D_\AndroidStudioProjects\OpenCVFeatureDetection\app\src\main\jni\jni_part.o: in function cv::FastFeatureDetector::~FastFeatureDetector():jni_part.cpp(.text._ZN2cv19FastFeatureDetectorD1Ev+0xa0): error: undefined reference to 'cv::FeatureDetector::~FeatureDetector()'
...25+ similar lines...
collect2: ld returned 1 exit status
make.exe: *** [D:\AndroidStudioProjects\OpenCVFeatureDetection\app\build\intermediates\ndk\arm\debug\obj/local/armeabi-v7a/libjni_part.so] Error 1

 FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:compileArmDebugNdk'.
> com.android.ide.common.internal.LoggedErrorException: Failed to run command:
    D:\android-ndk-r10c\ndk-build.cmd NDK_PROJECT_PATH=null APP_BUILD_SCRIPT=D:\AndroidStudioProjects\OpenCVFeatureDetection\app\build\intermediates\ndk\arm\debug\Android.mk APP_PLATFORM=android-21 NDK_OUT=D:\AndroidStudioProjects\OpenCVFeatureDetection\app\build\intermediates\ndk\arm\debug\obj NDK_LIBS_OUT=D:\AndroidStudioProjects\OpenCVFeatureDetection\app\build\intermediates\ndk\arm\debug\lib NDK_DEBUG=1 APP_STL=stlport_static APP_ABI=armeabi-v7a
Error Code:
    2
FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:compileArmDebugNdk'.
> com.android.ide.common.internal.LoggedErrorException: Failed to run command:
    D:\android-ndk-r10c\ndk-build.cmd NDK_PROJECT_PATH=null APP_BUILD_SCRIPT=D:\AndroidStudioProjects\OpenCVFeatureDetection\app\build\inter

mediates\ndk\arm\debug\Android.mk APP_PLATFORM=android-21 NDK_OUT=D:\AndroidStudioProjects\OpenCVFeatureDetection\app\build\intermediates\ndk\arm\debug\obj NDK_LIBS_OUT=D:\AndroidStudioProjects\OpenCVFeatureDetection\app\build\intermediates\ndk\arm\debug\lib NDK_DEBUG=1 APP_STL=stlport_static APP_ABI=armeabi-v7a
Error Code:
    2
Output:
    D:/android-ndk-r10c/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: D:\AndroidStudioProjects\OpenCVFeatureDetection\app\build\intermediates\ndk\arm\debug\obj/local/armeabi-v7a/objs-debug/jni_part/D_\AndroidStudioProjects\OpenCVFeatureDetection\app\src\main\jni\jni_part.o: in function cv::Mat::~Mat():jni_part.cpp(.text._ZN2cv3MatD2Ev+0x3c): error: undefined reference to 'cv::fastFree(void*)'
    D:/android-ndk-r10c/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: D:\AndroidStudioProjects\OpenCVFeatureDetection\app\build\intermediates\ndk\arm\debug\obj/local/armeabi-v7a/objs-debug/jni_part/D_\AndroidStudioProjects\OpenCVFeatureDetection\app\src\main\jni\jni_part.o: in function cv::Mat::release():jni_part.cpp(.text._ZN2cv3Mat7releaseEv+0x6c): error: undefined reference to 'cv::Mat::deallocate()'
    D:/android-ndk-r10c/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: D:\AndroidStudioProjects\OpenCVFeatureDetection\app\build\intermediates\ndk\arm\debug\obj/local/armeabi-v7a/objs-debug/jni_part/D_\AndroidStudioProjects\OpenCVFeatureDetection\app\src\main\jni\jni_part.o: in function cv::FastFeatureDetector::~FastFeatureDetector():jni_part.cpp(.text._ZN2cv19FastFeatureDetectorD1Ev+0xa0): error: undefined reference to 'cv::FeatureDetector::~FeatureDetector()'
    ...and 25+ similar lines again...
collect2: ld returned 1 exit status
    make.exe: *** [D:\AndroidStudioProjects\OpenCVFeatureDetection\app\build\intermediates\ndk\arm\debug\obj/local/armeabi-v7a/libjni_part.so] Error 1


* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.



 BUILD FAILED

Total time: 12.261 secs

我注意到类似的问题https://stackoverflow.com/a/22427267/4595220,但我仍然没有找到解决方案。我做错了什么?

build.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.2"

    defaultConfig {
        applicationId "com.gogiant.opencvfeaturedetection"
        minSdkVersion 15
        targetSdkVersion 21
    versionCode 1
    versionName "1.0"

    ndk {
        moduleName "jni_part"
        cFlags "-DANDROID_NDK"
        ldLibs "log"
        stl "stlport_static"
    }
}

buildTypes {
    release {

        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }

    // make per-variant version code
    applicationVariants.all { variant ->
        // get the single flavor
        def flavorVersion = variant.productFlavors.get(0).versionCode

        // set the composite code
        variant.mergedFlavor.versionCode = flavorVersion * 1000000 + defaultConfig.versionCode
    }

    productFlavors {
        x86 {
            ndk {
                abiFilter "x86"
            }

            // this is the flavor part of the version code.
            // It must be higher than the arm one for devices supporting
            // both, as x86 is preferred.
            versionCode = 3
        }
        arm {
            ndk {
                abiFilter "armeabi-v7a"
            }
            versionCode = 2
        }
        mips {
            ndk {
                abiFilter "mips"
            }
            versionCode = 1
        }
        fat {
            // fat binary, lowest version code to be
            // the last option
            versionCode = 0
        }
    }

        debug.jniDebuggable true
    }
}


dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.0.3'
    compile 'com.android.support:support-v4:21.0.3'
    compile project(':libraries:opencv')
}

Android.mk

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
OPENCV_LIB_TYPE:=STATIC
OPENCV_INSTALL_MODULES:=on
OPENCV_CAMERA_MODULES:=off


include D:\OpenCV-2.4.9-android-sdk\sdk\native\jni\OpenCV.mk

LOCAL_C_INCLUDES += D:\AndroidStudioProjects\OpenCVFeatureDetection\libraries\opencv\include


LOCAL_MODULE    := jni_part
LOCAL_SRC_FILES := jni_part.cpp

LOCAL_STATIC_LIBRARIES += libopencv_contrib libopencv_legacy libopencv_ml libopencv_stitching libopencv_nonfree libopencv_objdetect libopencv_videostab libopencv_calib3d libopencv_photo libopencv_video libopencv_features2d libopencv_highgui libopencv_androidcamera libopencv_flann libopencv_imgproc libopencv_ts libopencv_core

LOCAL_LDLIBS +=  -llog -ldl
include $(BUILD_SHARED_LIBRARY)

Application.mk

APP_STL := gnustl_static
APP_CPPFLAGS := -frtti -fexceptions
APP_ABI := all
APP_PLATFORM := android-8

项目结构:http : //i.stack.imgur.com/Yg5Jl.png完整项目:https : //yadi.sk/d/brR5GUjber2Qo

谢谢你的帮助。

Ha Dang

我已经测试了您的项目。为了使其成功构建,我必须删除文件夹app / src / main / jni和文件夹app / src / main / 3rdparty,并删除文件夹app / libs /中的文件opencvlibrary-2.4.9.jar。看来您的项目中有几个opencv库(因此彼此冲突)。

希望这可以帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Android Studio中的NDK无法正常工作

来自分类Dev

Android Studio中的NDK无法正常工作

来自分类Dev

.setText(“ text”)在android studio中无法正常工作

来自分类Dev

Debug.waitForDebugger(); 在Android Studio中无法正常工作

来自分类Dev

Laplacian OpenCV Android无法正常工作

来自分类Dev

Android Opencv Perspective Transformation无法正常工作

来自分类Dev

Android Studio Instant Run无法正常工作

来自分类Dev

Android Studio网络监控无法正常工作

来自分类Dev

Android Studio CountDownTimer无法正常工作

来自分类Dev

Android Studio >>按钮无法正常工作

来自分类Dev

Android Studio OnInfoWindowClickListener无法正常工作

来自分类Dev

Jayatana for Android Studio on 17.04无法正常工作

来自分类Dev

Android Studio HAXM无法正常工作

来自分类Dev

BroadcastReceiver中的Android onReceive无法正常工作

来自分类Dev

Textview Gravity在android中无法正常工作

来自分类Dev

在Android中重设视图无法正常工作

来自分类Dev

Media Player在Android中无法正常工作

来自分类Dev

Android中的singleTask launchMode无法正常工作

来自分类Dev

Android中的TouchEvent程序无法正常工作

来自分类Dev

Media Player在Android中无法正常工作

来自分类Dev

如果语句在android中无法正常工作

来自分类Dev

片段中的Android Flipview无法正常工作

来自分类Dev

Android中的SQLite查询无法正常工作

来自分类Dev

ViewPager中的Android MapFragment无法正常工作

来自分类Dev

Cookie 在 android 的 webview 中无法正常工作

来自分类Dev

在Mac上的Android Studio中,复制粘贴无法正常工作

来自分类Dev

在Android Studio 2.1.3中,实验性gradle无法正常工作吗?

来自分类Dev

在Mac上的Android Studio中,复制&粘贴&粘贴/自动完成功能无法正常工作

来自分类Dev

Android Studio:在模拟器中运行应用程序无法正常工作

Related 相关文章

  1. 1

    Android Studio中的NDK无法正常工作

  2. 2

    Android Studio中的NDK无法正常工作

  3. 3

    .setText(“ text”)在android studio中无法正常工作

  4. 4

    Debug.waitForDebugger(); 在Android Studio中无法正常工作

  5. 5

    Laplacian OpenCV Android无法正常工作

  6. 6

    Android Opencv Perspective Transformation无法正常工作

  7. 7

    Android Studio Instant Run无法正常工作

  8. 8

    Android Studio网络监控无法正常工作

  9. 9

    Android Studio CountDownTimer无法正常工作

  10. 10

    Android Studio >>按钮无法正常工作

  11. 11

    Android Studio OnInfoWindowClickListener无法正常工作

  12. 12

    Jayatana for Android Studio on 17.04无法正常工作

  13. 13

    Android Studio HAXM无法正常工作

  14. 14

    BroadcastReceiver中的Android onReceive无法正常工作

  15. 15

    Textview Gravity在android中无法正常工作

  16. 16

    在Android中重设视图无法正常工作

  17. 17

    Media Player在Android中无法正常工作

  18. 18

    Android中的singleTask launchMode无法正常工作

  19. 19

    Android中的TouchEvent程序无法正常工作

  20. 20

    Media Player在Android中无法正常工作

  21. 21

    如果语句在android中无法正常工作

  22. 22

    片段中的Android Flipview无法正常工作

  23. 23

    Android中的SQLite查询无法正常工作

  24. 24

    ViewPager中的Android MapFragment无法正常工作

  25. 25

    Cookie 在 android 的 webview 中无法正常工作

  26. 26

    在Mac上的Android Studio中,复制粘贴无法正常工作

  27. 27

    在Android Studio 2.1.3中,实验性gradle无法正常工作吗?

  28. 28

    在Mac上的Android Studio中,复制&粘贴&粘贴/自动完成功能无法正常工作

  29. 29

    Android Studio:在模拟器中运行应用程序无法正常工作

热门标签

归档