Android Studio 3.0.1集成CMake/ndk-build及OpenCV2.4.9编译报错求助
问题2:集成OpenCV 2.4.9后构建报错的解决办法
这个报错我之前也碰到过,原因很明确:Gradle插件3.0+已经彻底废弃了旧的compileDebugNdk任务,必须用CMake或者ndk-build作为原生构建系统,而你的项目现在还在尝试用旧方式编译C++代码。按下面步骤处理:
- 先完成问题1的配置:你已经集成了OpenCV 2.4.9,这个版本的OpenCV Android包自带
jni目录(带Android.mk)或者支持CMake配置,先按照上面的步骤把externalNativeBuild配置好。 - 移除旧的NDK配置:检查你的
build.gradle里有没有旧的ndk { ... }代码块,Gradle 3.0+完全不支持这种写法,直接删掉。 - 正确链接OpenCV库:
- 用ndk-build的话,在你的
Android.mk开头加上include $(OPENCV_ANDROID_SDK)/sdk/native/jni/OpenCV.mk(记得把OPENCV_ANDROID_SDK换成你本地的OpenCV SDK路径),然后在LOCAL_LDLIBS里加上需要的OpenCV库。 - 用CMake的话,要在
CMakeLists.txt里添加OpenCV的路径,比如set(OpenCV_DIR /path/to/opencv/sdk/native/jni),然后用find_package(OpenCV REQUIRED),最后用target_link_libraries把你的native库和OpenCV库链接起来。
- 用ndk-build的话,在你的
- 指定兼容的NDK版本:OpenCV 2.4.9比较老,建议用NDK r14b或者更早的版本,你可以在
local.properties里加上ndk.dir=/path/to/your/ndk-r14b,或者在build.gradle的externalNativeBuild参数里指定。
做完这些再同步Gradle重新构建,原来的报错就应该消失了。
内容的提问来源于stack exchange,提问作者Fahad
相关产品推荐
相关产品推荐

