:
buildscript {
repositories {
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
classpath 'io.fabric.tools:gradle:1.+'
}
}
apply plugin: 'com.android.model.application'
//apply plugin: 'io.fabric'
model {
android {
compileSdkVersion = 22
buildToolsVersion = "22.0.1"
defaultConfig.with {
applicationId = "com.collosteam.usbvideorecorder"
minSdkVersion.apiLevel = 18
targetSdkVersion.apiLevel = 22
versionCode = 1
versionName = "1.0"
}
}
android.ndk {
moduleName = "webcam_lib"
cppFlags += "-I${file("src/main/jni/UVCCamera")}".toString()
cppFlags += "-I${file("src/main/jni/libjpeg")}".toString()
cppFlags += "-I${file("src/main/jni/libusb")}".toString()
cppFlags += "-I${file("src/main/jni/libuvc")}".toString()
//ldFlags += "-L/src/main/jni/libuvc/include/libuvc"
//ldLibs += "usb"
// CFlags is configured in similiar way as cppFlags
ldLibs += "-L${file("src/main/jni/libuvc/include/libuvc")}".toString()
CFlags += "-I${file("-std=c11 -I${project.buildDir}/../src/main/jni/libuvc/include/libuvc")}".toString()
// CFlags += "-I${file("src/main/jni/libuvc/include/libuvc")}".toString()
// CFlags += "-I${file("src/main/jni/native_app_glue")}".toString()
// CFlags += "-I${file("src/main/jni/native_app_glue")}".toString()
// CFlags += "-I${file("src/main/jni/native_app_glue")}".toString()
ldLibs += ["android", "EGL", "GLESv2", "log"]
stl = "stlport_static"
}
android.sources {
main {
java {
source {
srcDirs 'src/main/java'
}
}
jni {
source {
srcDirs 'src/main/jni'
}
}
}
}
android.productFlavors {
create("arm7") {
ndk.abiFilters += "armeabi-v7a"
}
create("arm8") {
ndk.abiFilters += "arm64-v8a"
}
create("x86-32") {
ndk.abiFilters += "x86"
}
// for detailed abiFilter descriptions, refer to "Supported ABIs" @
// https://developer.android.com/ndk/guides/abis.html#sa
// build one including all productFlavors
create("all")
}
android.buildTypes {
release {
isMinifyEnabled = false
//proguardFiles += getDefaultProguardFile('proguard-android.txt')
proguardFiles += file('proguard-rules.pro')
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.2.0'
//compile('com.crashlytics.sdk.android:crashlytics:2.4.0@aar') {
// transitive = true;
//}
}
CFlags += "-I${file("-std=c11 -I${project.buildDir}/../src/main/jni/libuvc/include/libuvc")}".toString()
CFlags += ["-I${file("src/main/jni/libuvc/include/libuvc")}", "-std=c++11"]
android.ndk {
moduleName = "some_name"
.......
}
// But I need something like this
android.ndk {
moduleName0 = "some_name0"
/* some path to libraries 0 */
moduleName1 = "some_name1"
/* some path to libraries 1 */
moduleName2 = "some_name2"
/* some path to libraries 2 */ moduleName3 = "some_name3"
/* some path to libraries 3 */ .......
moduleNameN = "some_nameN"
/* some path to libraries N */
}
More wrapped my project:
I've had success using the -I cppFlags and CFlags. I've noticed that currently setting CFlags doesn't also set cppFlags. So try doing this:
There’s no support for NDK-only modules. The only supported project types are hybrid app projects and hybrid Library Projects.
Consumed Library project don’t impact compilation of jni code in the consuming project (ie the AAR so files are simply packaged in the APK)
No support for creating and depending on static libraries
No support for using a NDK modules like cpu_features
No support for integrating external build systems.