@ file : Suppress (" Un stable Api Usage ") Ċ Ċ import Ġcom . android . build . gradle . App Plugin Ċ import Ġcom . android . build . gradle . Library Extension Ċ import Ġcom . android . build . gradle . Library Plugin Ċ import Ġcom . android . build . gradle . Tested Extension Ċ import Ġcom . android . build . gradle . internal . dsl . Base App Module Extension Ċ import Ġorg . gradle . api . tasks . testing . logging . Test Log Event Ċ import Ġorg . jetbrains . kotlin . gradle . dsl . Kotlin Project Extension Ċ import Ġorg . jetbrains . kotlin . gradle . tasks . Kotlin Compile Ċ Ċ project . after Evaluate Ġ{ ĊĠ Ġplugins . all Ġ{ ĊĠĠĠ Ġwhen Ġ( this ) Ġ{ ĊĠĠĠĠĠ Ġis ĠLibrary Plugin Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġextensions . getBy Type < Library Extension >(). android Library Config () ĊĠĠĠĠĠĠĠ Ġextensions . getBy Type < Tested Extension >(). android Common Config ( project . gradle . start Parameter ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġis ĠApp Plugin Ġ-> Ġ{ ĊĠĠĠĠĠĠĠ Ġextensions . getBy Type < Base App Module Extension >(). android AppConfig () ĊĠĠĠĠĠĠĠ Ġextensions . getBy Type < Tested Extension >(). android Common Config ( project . gradle . start Parameter ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĠ Ġcommon Config () Ċ } Ċ Ċ fun ĠTested Extension . android Common Config ( start Parameter : ĠStart Parameter ) Ġ{ ĊĠ Ġset Compile Sdk Version ( Android Sdk . compile Sdk ) ĊĊĠ Ġdefault Config Ġ{ ĊĠĠĠ Ġ// Ġset Ġmin Sdk Version Ġto Ġ 2 1 Ġfor Ġandroid Ġtests Ġto Ġavoid Ġmulti - dex ing . ĊĠĠĠ Ġval Ġtest Task Keywords Ġ= ĠlistOf (" android Test ", Ġ" connected Check ") ĊĠĠĠ Ġval Ġis Test Build Ġ= Ġstart Parameter . task Names . any Ġ{ Ġtask Name Ġ-> ĊĠĠĠĠĠ Ġtest Task Keywords . any Ġ{ Ġkeyword Ġ-> ĊĠĠĠĠĠĠĠ Ġtask Name . contains ( keyword , Ġignore Case Ġ= Ġtrue ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġif Ġ(! is Test Build ) Ġ{ ĊĠĠĠĠĠ Ġmin Sdk Version ( Android Sdk . min Sdk ) ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠ Ġmin Sdk Version ( Android Sdk . test Min Sdk ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġtarget Sdk Version ( Android Sdk . target Sdk ) ĊĊĠĠĠ Ġcompile Options Ġ{ ĊĠĠĠĠĠ Ġsource Compatibility Ġ= ĠJava Version . VERSION _ 1 _ 8 ĊĠĠĠĠĠ Ġtarget Compatibility Ġ= ĠJava Version . VERSION _ 1 _ 8 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġtest Instrumentation Runner Ġ= Ġ" android x . test . runner . Android JUnit Runner " ĊĠĠĠ Ġtest Instrumentation Runner Argument (" clear Package Data ", Ġ" true ") ĊĊĠĠĠ Ġconsumer Pro guard Files (" consumer - rules . pro ") ĊĠ Ġ} ĊĊĠ Ġbuild Types Ġ{ ĊĠĠĠ Ġget ByName (" release ") Ġ{ ĊĠĠĠĠĠ Ġis Min ify Enabled Ġ= Ġfalse ĊĠĠĠĠĠ Ġpro guard Files ( ĊĠĠĠĠĠĠĠ ĠgetDefault Pro guard File (" pro guard - android - optimize . txt "), ĊĠĠĠĠĠĠĠ Ġ" pro guard - rules . pro " ĊĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġlint Options Ġ{ ĊĠĠĠ Ġis Warnings As Errors Ġ= Ġtrue ĊĠĠĠ Ġis Abort OnError Ġ= Ġtrue ĊĠ Ġ} ĊĊĠ Ġtest Options Ġ{ ĊĠĠĠ Ġanimations Disabled Ġ= Ġtrue ĊĠĠĠ Ġexecution Ġ= Ġ" AND RO IDX _ TEST _ OR CHE STR ATOR " ĊĠ Ġ} ĊĊĠ Ġpackaging Options Ġ{ ĊĠĠĠ Ġexclude (" META - INF / AL 2 . 0 ") ĊĠĠĠ Ġexclude (" META - INF / L GPL 2 . 1 ") ĊĠ Ġ} Ċ } Ċ Ċ fun ĠBase App Module Extension . android AppConfig () Ġ{ ĊĠ Ġdefault Config Ġ{ ĊĠĠĠ Ġapplication Id Ġ= ĠApp Coordinates . APP _ ID ĊĠĠĠ Ġversion Code Ġ= ĠApp Coordinates . VERSION _ CODE ĊĠĠĠ Ġversion Name Ġ= ĠApp Coordinates . VERSION _ NAME ĊĠ Ġ} Ċ } Ċ Ċ fun ĠLibrary Extension . android Library Config () Ġ{ ĊĠ Ġbuild Features Ġ{ ĊĠĠĠ Ġbuild Config Ġ= Ġfalse ĊĠ Ġ} Ċ } Ċ Ċ fun ĠProject . common Config () Ġ{ ĊĊĠ Ġextensions . findBy Type < Kotlin Project Extension >() ?. apply Ġ{ ĊĠĠĠ Ġ// ĠFIXME : ĠAndroid Ġnot Ġsupported Ġyet Ġhttps :// yout rack . jetbrains . com / issue / KT - 3 7 6 5 2 ĊĠĠĠ Ġexplicit Api () ĊĠ Ġ} ĊĊĠ Ġtasks . with Type < Java Compile >(). configure Each Ġ{ ĊĠĠĠ Ġsource Compatibility Ġ= ĠJava Version . VERSION _ 1 _ 8 . toString () ĊĠĠĠ Ġtarget Compatibility Ġ= ĠJava Version . VERSION _ 1 _ 8 . toString () ĊĠ Ġ} ĊĊĠ Ġtasks . with Type < Kotlin Compile >(). configure Each Ġ{ ĊĠĠĠ Ġkotlin Options . jvm Target Ġ= Ġ" 1 . 8 " ĊĠ Ġ} ĊĊĠ Ġtasks . with Type < Test >(). configure Each Ġ{ ĊĠĠĠ Ġmax Parallel Fork s Ġ= ĠRuntime . get Runtime (). available Processors () Ġ* Ġ 2 ĊĠĠĠ Ġtest Logging Ġ{ ĊĠĠĠĠĠ Ġevents ( Test Log Event . PAS SED , ĠTest Log Event . SKIP PED , ĠTest Log Event . FAILED ) ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ