Как добавить OpenCV lib в AS3.1.2 и NDK 17.0 - PullRequest
0 голосов
/ 20 мая 2018

Мне нужно использовать OpenCV в Android Studio 3.1.2.У меня есть последняя версия от 20.05.2008 этого IDE и NDK (17.0.4754217).

Я прочитал этот пост , говорил об этом и что-то говорит о проблеме сNDK версии 16, но это не так.

Большинство руководств предназначено для более старых версий Android (я видел руководства, говорящие об Eclipse IDE для разработки под Android), но ни у кого нет ни последней версии, ни одной ближайшей,и это проблема, поскольку последняя версия AS вызывает много ошибок в старых проектах или в способе их создания, поэтому они делают эти руководства устаревшими.

Возможно, это проблема, вызванная тем, что яне знаю, как работать с NDK и CMake, поэтому я был бы признателен, если кто-нибудь, кто знает, как или пытался это сделать, расскажет мне, как добавить OpenCV в Android 3.1.2, и, возможно, этот пост может быть полезен для другогопользователи для будущих версий NDK и AS.

TY столько.

Ответы [ 2 ]

0 голосов
/ 02 июня 2018

1. Убедитесь, что у вас установлена ​​последняя версия Android SDK с установленным NDK

2. Загрузите последнюю версию OpenCV SDK для Android с OpenCV.org и распакуйте ее.zip-файл.

3. Создание нового проекта Android Studio

  • Установите флажок Включить поддержку C ++ image 1
  • Выберите пустое действие
  • В поддержке C ++ вы можете проверить -fexceptions и -frtti image 2

4. ImportМодуль библиотеки OpenCV

  • Новый -> Модуль импорта
  • Выберите папку YOUR_OPENCV_SDK / sdk / java image 3
  • Unckeck replace jar,unckeck replace lib, unckeck create gradle-style image 4

5. Установите модуль библиотеки OpenCV в соответствии с вашим SDK

app / build.gradle image 5

opencv / build.gradle image 6

Отредактируйте openCVLibrary / build.gradle в соответствии с вашим приложением / build.gradle eg:

compileSdkVersion 27
defaultConfig {
minSdkVersion 19
targetSdkVersion 27
}

6. Добавить зависимость модуля OpenCV в модуль приложения

Файл -> Структура проекта -> Приложение модуля -> Вкладка Зависимости -> Новая зависимость модуля -> выберите модуль библиотеки OpenCV image 7

image 16

7. Создайте папку jni , щелкнув правой кнопкой мыши по app / src / main и нажав Сменить расположение папки после этого переименования папки fron jni до jniLibs

  • 1-й шаг image 8

  • 2-й шаг image 9

  • 3-й шаг image 10

8. Копировать все файлыиз вашего каталога opencv YOUR_OPENCV_SDK / sdk / native / libs , который вы скачали, и вставьте их в jniLibs папку

  • 1-й шаг image 11

  • 2-й шаг image 12

9. Установить приложение build.gradle

  • Добавить abiFilters

    externalNativeBuild {
    cmake {
        cppFlags "-frtti -fexceptions"
        abiFilters 'x86', 'x86_64', 'armeabi-v7a', 'arm64-v8a'
       }
    }
    

    image 13

10. Настройка файла CMakeLists.txt

  • Скопируйте эти три строки и вставьте после cmake_minimum_required

    include_directories(YOUR_OPENCV_SDK/sdk/native/jni/include)
    add_library( lib_opencv SHARED IMPORTED )
    set_target_properties(lib_opencv PROPERTIES IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/src/main/jniLibs/${ANDROID_ABI}/libopencv_java3.so)
    

    image 14

  • Перейти к концу CMakeLists.txt и записать lib_opencv в target_link_libraries список image 15

Все готово, наслаждайтесь кодированием с opencv ... Final Image

0 голосов
/ 23 мая 2018

Если вы используете Android Studio, то первоначальная интеграция с NDK теперь намного проще, чем раньше.

Вы можете просто создать новый проект в Android Studio, указать, что вы хотите, чтобы в нем поддерживалась NDK, ипросто добавьте базовое упражнение.

Добавление OpenCV NDK (т.е. поддержка C ++) к этому проекту все еще сложно - как вы говорите, большинство руководств и инструкций на страницах Android OpenCV в настоящее время основаны на затмении.Я просмотрел много блогов, руководств и т. Д. Для OpenCv на Android Studio с NDK, и тот, который работал для меня совсем недавно (на этой неделе) и который, кажется, постоянно обновляется, - вот этот ответ здесь:

Я бы посоветовал вам попробовать этот подход и поделиться любыми проблемами в комментариях, чтобы он обновлялся и оставался актуальным, как изменения в Android ив OpenCV важно иметь хорошо поддерживаемые справочные инструкции.

...