Android Studio 3.0.1配置OpenCV

一、新建工程

1. 在创建工程的对话框中选择Include C++ support,如下图所示:

创建工程

2. 一直点击Next,直到最后一步。选择Exception Support(-fexceptions)Runtime Type Information Support(-frtti),便于出错时的调试。如下图所示:

调试支持

二、配置OpenCV

1. 从OpenCV官网下载Android平台的SDK(https://opencv.org/releases.html

2. 解压文件。

3. 将解压路径(F:\OpenCV\OpenCV-android-sdk\sdk\native\jni)中的include文件夹,复制到Android工程cpp目录下。如下所示:

include位置

4. 在Android工程的main目录下,新建jniLibs目录。

5. 将解压路径(F:\OpenCV\OpenCV-android-sdk\sdk\native\libs)中的所有文件夹,复制到Android工程jniLibs文件加中。并删除架构目录(armeabi等)中的xxxx.a文件,只留下libopencv_java3.so。如下图所示:

添加库文件

三、配置CMakeLists文件

该文件位于Android工程目录app下。添加如下配置:

1. 设置文件路径

### OpenCV 环境 ###
set(CMAKE_VERBOSE_MAKEFILE on)
set(OpenCVLibs "${CMAKE_SOURCE_DIR}/src/main/jniLibs")
include_directories(${CMAKE_SOURCE_DIR}/src/main/cpp/include)
add_library(libopencv_java3 SHARED IMPORTED)
set_target_properties(libopencv_java3 PROPERTIES IMPORTED_LOCATION "${OpenCVLibs}/${ANDROID_ABI}/libopencv_java3.so")

2. 修改目标链接库

target_link_libraries( # Specifies the target library.
                      native-lib
                      # 添加库
                      android log
                      libopencv_java3
                      # Links the target library to the log library
                      # included in the NDK.
                      ${log-lib} )

最终配置如下:

# For more information about using CMake with Android Studio, read the
# documentation: https://d.android.com/studio/projects/add-native-code.html
# Sets the minimum version of CMake required to build the native library.
cmake_minimum_required(VERSION 3.4.1)

### OpenCV 环境 ###
set(CMAKE_VERBOSE_MAKEFILE on)
set(OpenCVLibs "${CMAKE_SOURCE_DIR}/src/main/jniLibs")
include_directories(${CMAKE_SOURCE_DIR}/src/main/cpp/include)
add_library(libopencv_java3 SHARED IMPORTED)
set_target_properties(libopencv_java3 PROPERTIES IMPORTED_LOCATION "${OpenCVLibs}/${ANDROID_ABI}/libopencv_java3.so")

# Creates and names a library, sets it as either STATIC
# or SHARED, and provides the relative paths to its source code.
# You can define multiple libraries, and CMake builds them for you.
# Gradle automatically packages shared libraries with your APK.
add_library( # Sets the name of the library.
            native-lib
            # Sets the library as a shared library.
            SHARED
            # Provides a relative path to your source file(s).
            src/main/cpp/native-lib.cpp )

# Searches for a specified prebuilt library and stores the path as a
# variable. Because CMake includes system libraries in the search path by
# default, you only need to specify the name of the public NDK library
# you want to add. CMake verifies that the library exists before
# completing its build.

find_library( # Sets the name of the path variable.
              log-lib
              # Specifies the name of the NDK library that
              # you want CMake to locate.
              log )

# Specifies libraries CMake should link to your target library. You
# can link multiple libraries, such as libraries you define in this
# build script, prebuilt third-party libraries, or system libraries.
target_link_libraries( # Specifies the target library.
                      native-lib
                      # 添加库
                      android log
                      libopencv_java3
                      # Links the target library to the log library
                      # included in the NDK.
                      ${log-lib} )

四、配置app/build.gradle

1. 添加CUP架构的支持

abiFilters "armeabi", "armeabi-v7a", "arm64-v8a", "mips", "mips64", "x86", "x86_64"

如下图所示:

架构

2. 添加本应用生成的架构支持

添加如下代码:

ndk {
    abiFilters "armeabi"
}

最终如下图所示:


配置
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容