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

标签 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 文件,但它们没有使用受支持的 native 构建系统

最佳答案

我昨天能够使用 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 月发布稳定版本。

关于android - 配置 OpenCV 时出错。当我运行该应用程序时,它显示我有 cpp 文件,但它们没有使用受支持的 native 构建系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40660439/

相关文章:

android - 用户存在和身份验证

python - python中的图像分割

sharepoint - 如何在 WSP 中包含配置文件?

c++ - 如何找到图像的非方形 ROI?

python - 使用 numpy.fromfile 读取 RAW 图像 (.CR2)

C编译器可以在运行时消除这个条件测试吗?

grails - 如何从Grails中正确去除H2

android - 屏幕方向更改后继续 Activity - Android

android - 当我尝试构建 Unity 项目时 Jenkins 被绞死

android - 使用codenvy开发android项目