2017-09-29 9 views
0

J'ai un projet android utilisant OpenCV et j'ai besoin d'utiliser OpenCV à partir du code C++ natif. Mais j'ai un problème, pour config cmake pour lier les bibliothèques. Je n'ai aucune connaissance sur cmake, ni avec Gradle.Comment utiliser OpenCV à partir de C++ natif sur Android (en utilisant NDK)

J'ai trouvé quelques conseils et j'ai essayé d'écrire CMakeLists.txt par moi-même, mais je n'ai pas réussi. À l'heure actuelle, mon CMakeLists.txt ressemble à:

cmake_minimum_required(VERSION 3.4.1) 
set(CMAKE_VERBOSE_MAKEFILE on) 

add_library(cpp_native_code SHARED src/main/cpp/jni_interface.cpp) 
# find all other source files 
file (GLOB cpp_code_files src/main/cpp/*.cpp src/main/cpp/*.hpp) 
# add then to project 
target_sources(cpp_native_code PUBLIC ${cpp_code_files}) 

find_library(log-lib log) 
target_link_libraries(cpp_native_code ${log-lib}) 

set(path_to_opencv C:/Programs/OpenCV_Android_SDK) 
include_directories(${path_to_opencv}/sdk/native/jni/include) 

add_library(lib_opencv SHARED IMPORTED) 
set_target_properties(lib_opencv PROPERTIES IMPORTED_LOCATION 
    ${CMAKE_SOURCE_DIR}/src/main/jniLibs/${ANDROID_ABI}/libopencv_java3.so) 
target_link_libraries(cpp_native_code lib_opencv) 

Lorsque je tente de lancer mon projet, je reçois cette erreur:

Error:error: '../../../../src/main/jniLibs/arm64-v8a/libopencv_java3.so', 
needed by '../../../../build/intermediates/cmake/debug/obj/arm64- 
v8a/libcpp_native_code.so', missing and no known rule to make it 

J'utilise OpenCV 3.3.0. Si nécessaire, je fournis une capture d'écran de la structure de mon projet here. OpenCV fonctionne lorsqu'il est utilisé directement depuis Android.

S'il vous plaît, pourriez-vous quelqu'un me conseiller, que fais-je tort? Ou s'il y a des informations, je n'ai pas écrit et ce qui est important.

Merci pour votre aide.

Répondre

0

Regardez this projet

Remarque, ce n'est pas mon projet, je ne l'ai pas tester.