使用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文件,但他们没有使用支持的本机构建系统
答案 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)