最近项目需要加入人脸识别, 于是加入opencv和dlib来实现 ,参考网上集成时报错
cmakelists代码
cmake_minimum_required(VERSION 3.4.1)
set(NATIVE_DIR ${CMAKE_SOURCE_DIR}/src/main/cpp)
include(${NATIVE_DIR}/dlib/cmake)
include_directories(${NATIVE_DIR}/opencv/jni/include)
add_library(
libopencv_java3
SHARED
IMPORTED)
set_target_properties(
libopencv_java3
PROPERTIES
IMPORTED_LOCATION
${NATIVE_DIR}/opencv/libs/${ANDROID_ABI}/libopencv_java3.so)
AUX_SOURCE_DIRECTORY(${NATIVE_DIR}/jni_common SRC_LIST)
add_library( # Sets the name of the library.
native-lib
SHARED
${SRC_LIST}
src/main/cpp/face_detector.h
src/main/cpp/face_detector.cpp
src/main/cpp/native-lib.cpp)
find_library( # Sets the name of the path variable.
log-lib
log)
target_link_libraries( # Specifies the target library.
native-lib
dlib
libopencv_java3
jnigraphics
# Links the target library to the log library
# included in the NDK.
${log-lib})
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -s -O3 -Wall")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -s -O3 -Wall")
这是报错信息
Caused by: Build command failed.
Error while executing process C:\Users\87945\AppData\Local\Android\Sdk\cmake\3.6.4111459\bin\cmake.exe with arguments {--build F:\pyapplication\app\.cxx\cmake\debug\armeabi-v7a --target native-lib}
ninja: error: '../../../../src/main/cpp/opencv/libs/armeabi-v7a/libopencv_java3.so', needed by '../../../../build/intermediates/cmake/debug/obj/armeabi-v7a/libnative-lib.so', missing and no known rule to make it
at com.android.build.gradle.internal.cxx.process.ProcessOutputJunction.execute(ProcessOutputJunction.kt:79)
at com.android.build.gradle.internal.cxx.process.ProcessOutputJunction.execute(ProcessOutputJunction.kt:120)
at com.android.build.gradle.tasks.ExternalNativeBuildTask.executeProcessBatch(ExternalNativeBuildTask.java:471)
at com.android.build.gradle.tasks.ExternalNativeBuildTask.buildImpl(ExternalNativeBuildTask.java:207)
at com.android.build.gradle.tasks.ExternalNativeBuildTask.doTaskAction(ExternalNativeBuildTask.java:107)
at com.android.build.gradle.internal.tasks.NonIncrementalTask$taskAction$$inlined$recordTaskAction$1.invoke(AndroidVariantTask.kt:51)
at com.android.build.gradle.internal.tasks.NonIncrementalTask$taskAction$$inlined$recordTaskAction$1.invoke(AndroidVariantTask.kt:31)
at com.android.build.gradle.internal.tasks.Blocks.recordSpan(Blocks.java:91)
at com.android.build.gradle.internal.tasks.NonIncrementalTask.taskAction(NonIncrementalTask.kt:34)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:103)
... 91 more
这是我的目录结构
大佬帮帮忙 问题有有不清楚的直接问我就是 谢谢