OpenCv с Android Studio 2.2+ с использованием нового градиента с cmake - ссылка undefined

У меня проблемы с использованием собственного OpenCv 3.0.0 с Android Studio 2.2 с новой поддержкой ndk, то есть с использованием сценария сборки CMAKE. Ниже приведена ошибка, которую я получаю. Мне что-то не хватает в моем файле gradle или cmake? Пожалуйста, дай мне знать.

Ошибка: ОШИБКА: сбой сборки с исключением.

  • Что пошло не так: не удалось выполнить задачу ': app: externalNativeBuildDebug'.
    # P3 #

И мой Cmake.txt

 cmake_minimum_required(VERSION 3.4.1)
 add_library( native-lib
         SHARED
         src/main/cpp/native-lib.cpp )
include_directories(E\:\\OpenCVSdk\\sdk\\native\\jni\\include )
find_library( log-lib log )
target_link_libraries(native-lib ${log-lib} )

И мой файл сборки Gradle

 {    apply plugin: 'com.android.application'

 android {

compileSdkVersion 24
buildToolsVersion "24.0.2"
defaultConfig {
    applicationId "viki.opecvtry2csupport"
    minSdkVersion 16
    targetSdkVersion 24
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"



    externalNativeBuild {
        cmake {
            cppFlags ""

        }
    }
}

person vicky    schedule 24.09.2016    source источник
comment
Каталог include должен оставаться с синтаксисом cmake, я подумал: include_directories (путь / к / вашему / sdk / native / jni / include) target_link_libraries (журнал native-lib)   -  person Gerry    schedule 26.09.2016
comment
У меня аналогичная проблема с импортированной общей библиотекой ffmpeg, вы нашли решение?   -  person Krzysztof Kansy    schedule 09.10.2016
comment
Я все еще не нашел решения   -  person vicky    schedule 12.10.2016
comment
Я перешел к новой системе, и я думаю, вам следует добавить желаемую библиотеку в CMakeLists.txt с помощью addLibrary, а затем указать ее местоположение с помощью set_target_properties. Но лучше всего вам стоит взглянуть на это: пример проекта github.com/sengsational/HelloCv. У меня работает из коробки.   -  person Krzysztof Kansy    schedule 12.10.2016
comment
Я не смог реализовать с помощью файла Cmake, но мне удалось реализовать его с помощью файла .mk. Проверьте этот github .com / VikasRao / NDK-OpenCVAndroid   -  person vicky    schedule 14.10.2016
comment
@vicky Спасибо за образец. Я также решил использовать старую систему создания файлов Android.   -  person Krzysztof Kansy    schedule 17.10.2016
comment
Привет, ребята, ознакомьтесь с моим ответом, который включает интеграцию OpenCV с CMake и Android Gradle Plugin 2.3.1: stackoverflow.com/questions/43766092/   -  person ahasbini    schedule 10.05.2017


Ответы (2)



Настройка OpenCV_DIR у меня сработала с OpenCV 3.1 и AS 2.2 и последним плагином Gradle. Это соответствующий фрагмент моего файла CMakeLists.txt.

cmake_minimum_required(VERSION 3.6)

SET(OpenCV_DIR $ENV{HOME}/AndroidDevelopment/opencv-3.1.0/sdk/native/jni)

find_package(OpenCV REQUIRED)
message(STATUS "opencv found: ${OpenCV_LIBS}")

include_directories(${CMAKE_CURRENT_SOURCE_DIR}
                    ${OpenCV_DIR}/include/)
[...]
target_link_libraries(myTarget log ${OpenCV_LIBS} m z android )
person user1906    schedule 05.12.2016
comment
include_directories(...) не требуется при использовании CMake ›= 2.8.11 для компиляции OpenCV - person ahasbini; 10.05.2017