// Project information buildDir = 'bin' def getPackageName() { return "org.linphone.tester" } buildscript { repositories { jcenter() mavenCentral() mavenLocal() } dependencies { classpath 'com.android.tools.build:gradle:2.3.0' } } apply plugin: 'com.android.application' dependencies { compile project(":libLinphoneAndroidSdk") compile fileTree(dir: 'libs', include: '*.jar') androidTestCompile fileTree(dir: 'libs', include: '*.jar') } android { defaultConfig { compileSdkVersion 23 buildToolsVersion "25.0.2" applicationId getPackageName() multiDexEnabled true } sourceSets { main { manifest.srcFile 'AndroidManifest.xml' java.srcDirs = ['src'] resources.srcDirs = ['src'] aidl.srcDirs = ['src'] renderscript.srcDirs = ['src'] res.srcDirs = ['res'] assets.srcDirs = ['assets'] jniLibs.srcDir 'libs' // Exclude some useless files packagingOptions { exclude '**/gdb.*' } } debug.setRoot('build-types/debug') release.setRoot('build-types/release') } sourceSets { androidTest { manifest.srcFile 'AndroidManifest.xml' java.srcDirs = ['src'] resources.srcDirs = ['src'] aidl.srcDirs = ['src'] renderscript.srcDirs = ['src'] res.srcDirs = ['res'] assets.srcDirs = ['assets'] jniLibs.srcDir 'libs' } debug.setRoot('build-types/debug') release.setRoot('build-types/release') } testOptions { unitTests.all { // All the usual Gradle options. testLogging { events "passed", "skipped", "failed", "standardOut", "standardError" outputs.upToDateWhen {false} showStandardStreams = true } } } lintOptions { checkReleaseBuilds false // Or, if you prefer, you can continue to check for errors in release builds, // but continue the build even when errors are found: abortOnError false } } // Grant permissions android.applicationVariants.all { variant -> def applicationId = getPackageName() def applicationIdtest = "${getPackageName()}.test" def adb = android.getAdbExe().toString() def variantName = variant.name.capitalize() def grantPermissionTask = tasks.create("grant${variantName}Permissions") << { "${adb} devices".execute().text.eachLine { if(it.endsWith("device")){ def device = it.split()[0] println "Granting permissions on devices ${device}" "${adb} shell pm grant ${applicationId} android.permission.RECORD_AUDIO".execute() "${adb} shell pm grant ${applicationId} android.permission.WRITE_EXTERNAL_STORAGE".execute() "${adb} shell pm grant ${applicationId} android.permission.CAMERA".execute() "${adb} shell pm grant ${applicationIdtest} android.permission.RECORD_AUDIO".execute() "${adb} shell pm grant ${applicationIdtest} android.permission.WRITE_EXTERNAL_STORAGE".execute() "${adb} shell pm grant ${applicationIdtest} android.permission.CAMERA".execute() } } } } tasks.withType(Test) { testLogging { exceptionFormat 'full' showCauses true showExceptions true showStackTraces true showStandardStreams true } }