build.gradle for Dlib and OpenCV integration with Android

February 26, 2019 ยท View on GitHub

apply plugin: 'com.android.application' apply plugin: 'kotlin-android' // optional apply plugin: 'kotlin-android-extensions' // optional

android { compileSdkVersion 27 defaultConfig { applicationId "com.your.application" minSdkVersion 16 // remember: at least 16! targetSdkVersion 27 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

    // specify the platform you want to build for
    ndk {
        abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
    }
    
    externalNativeBuild {
        // set c++ flags, specify the STL: c++_shared, gnustl... 
        cmake {
            cFlags   "-O3"
            cppFlags "-std=c++11 -frtti -fexceptions"
            arguments "-DANDROID_PLATFORM=android-16",  // remember: same min sdk as before
                      "-DANDROID_TOOLCHAIN=clang",
                      "-DANDROID_STL=c++_shared",
                      "-DANDROID_CPP_FEATURES=rtti exceptions"
        }
    }
}

sourceSets {
    // tell to CMake where to find the native pre-build libraries:
    main {
        jniLibs.srcDirs = [
                "src/main/cppLibs/dlib/lib",   // remove if you only need opencv
                "src/main/cppLibs/opencv"  // remove if you only need dlib
        ]
    }
}

buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

externalNativeBuild {
    cmake {
        path "CMakeLists.txt"
    }
}

packagingOptions {
    pickFirst "**/libc++_shared.so"
}

}

dependencies { /** your dependencies /
implementation fileTree(dir: 'libs', include: ['
.jar']) implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" // optional implementation 'com.android.support:appcompat-v7:27.1.1' implementation 'com.android.support.constraint:constraint-layout:1.1.3' testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' }