配置OpenCV时出错。当我运行应用程序时,它显示我有cpp文件,但他们没有使用支持的本机构建系统

时间:2016-11-17 16:42:31

标签: android opencv configuration android-ndk

使用OpenCV库时出现错误:

Error:Execution failed for task ':app:compileDebugNdk'.  Error: Your project contains C++ files but it is not using a supported native build system.   Consider using CMake or ndk-build integration with the stable Android Gradle plugin:    https://developer.android.com/studio/projects/add-native-code.html   or use the experimental plugin:    http://tools.android.com/tech-docs/new-build-system/gradle-experimental.`

当我创建jniLibs文件夹时,它会显示cpp文件夹,而不是当我运行应用程序时,它显示我有cpp文件,但他们没有使用支持的本机构建系统

2 个答案:

答案 0 :(得分:1)

我昨天可以使用NDK的cmake从git(https://github.com/opencv/opencv/tree/3.1.0)构建opencv。

export ANDROID_NDK=~/android-sdks/ndk-bundle
cmake -GNinja -DANDROID_TOOLCHAIN_NAME=clang -DANDROID_ABI=armeabi-v7a \
    -DANDROID_ARM_NEON=ON -DENABLE_NEON=ON -DANDROID_STL=c++_static \
    -DANDROID_CPP_FEATURES="rtti exceptions" -DANDROID_PLATFORM=android-9 \
    -DBUILD_ANDROID_EXAMPLES=OFF -DBUILD_DOCS=OFF -DBUILD_FAT_JAVA_LIB=OFF \
    -DBUILD_JASPER=OFF -DBUILD_OPENEXR=OFF -DBUILD_PACKAGE=OFF \
    -DBUILD_PERF_TESTS=OFF -DBUILD_TESTS=OFF -DBUILD_TIFF=ON \
    -DBUILD_WITH_DEBUG_INFO=OFF -DBUILD_opencv_apps=OFF -DBUILD_opencv_java=OFF \
    -DBUILD_opencv_python2=OFF -DBUILD_opencv_world=OFF \
    -DCMAKE_C_FLAGS_RELEASE="-Os -DNDEBUG -fvisibility=hidden -ffunction-sections -fstack-protector-all" \
    -DCMAKE_CXX_FLAGS_RELEASE="-Os -DNDEBUG -fvisibility=hidden -ffunction-sections -fstack-protector-all -fvisibility-inlines-hidden" \
    -DENABLE_PRECOMPILED_HEADERS=OFF -DWITH_EIGEN=OFF -DWITH_JASPER=OFF \
    -DWITH_OPENEXR=OFF -DWITH_TIFF=ON -DWITH_TBB=ON -DWITH_CUDA=OFF \
    -DWITH_CUFFT=OFF -DWITH_WEBP=OFF -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON \
    -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake \
    path/to/opencv

该命令行的使用,但如果你在Android Studio中构建,那么类似的东西应该有效。我猜你不需要所有这些选项,但那些是给我的指示。

不幸的是,NDK r13 cmake工具链中的一个错误需要先修复:https://github.com/android-ndk/ndk/issues/234。我们即将发布NDK r14的第一个测试版,它确实有修复程序。您不应该将贝塔用于生产,但如果您不打算立即发货,它应该在2月份稳定发布。

答案 1 :(得分:0)

尝试从here下载最新的OpenCV SDK并按步骤将其添加到您的项目中,由@ssimm here描述