Too late, but to some it may seem useful. First place libopencv_java.so for opencv 2 or libopencv_java3.so for oepncv3 in the app / src / main / jniLibs folder under a different architecture, add if you also have linonfree.so in the jniLibs folder. Bind cmake to gradle.
Here are the CmakeLists.
cmake_minimum_required(VERSION 3.4.1)
set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_SOURCE_DIR}/src/main/jniLibs/${ANDROID_ABI}")
add_library(
native-lib
SHARED
src/main/cpp/native-lib.cpp )
add_library(
nonfree
SHARED
IMPORTED )
set_target_properties(
nonfree
PROPERTIES IMPORTED_LOCATION
${CMAKE_SOURCE_DIR}/src/main/jniLibs/${ANDROID_ABI}/libnonfree.so )
include_directories(C:/Users/what/Documents/OpenCV-android-sdk/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)
find_library(
log-lib
log )
target_link_libraries(
native-lib
nonfree
lib-opencv
${log-lib} )
jniLis.srcDirs build.gradle(app).
sourceSets {
main {
jniLibs.srcDirs = ['src/main/jniLibs']
}
}