import Ġorg . gradle . api . Java Version Ċ import Ġorg . gradle . api . Project Ċ import Ġorg . gradle . api . plugins . Java Plugin Extension Ċ import Ġorg . jetbrains . kotlin . gradle . tasks . Kotlin Compile Ċ Ċ fun ĠProject . configure Java And Kotlin Comp ilers () Ġ{ ĊĠ Ġ// ĠBecause Ġthis Ġis Ġcalled Ġfrom Ġsub project Ġ{}, Ġit Ġmight Ġactually Ġbe Ġcalled Ġbefore Ġthe Ġjava / kotlin Ġplugins Ġare Ġapplied ĊĠ Ġ// ĠXXX : Ġreplace Ġwith Ġplugins . with Id ("") Ġ{} ĊĠ Ġafter Evaluate Ġ{ ĊĠĠĠ Ġ// ĠFor ĠKotlin ĠJVM Ġprojects ĊĠĠĠ Ġtasks . with Type ( Kotlin Compile :: class . java ) Ġ{ ĊĠĠĠĠĠ Ġit . kotlin Options Ġ{ ĊĠĠĠĠĠĠĠ Ġfree Compiler Args Ġ= Ġfree Compiler Args Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"- X opt - in = kotlin . Requires Opt In " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠThis Ġis Ġa Ġworkaround Ġfor Ġhttps :// yout rack . jetbrains . com / issue / KT - 4 7 0 0 0 Ġ( fixed Ġin ĠK olt in Ġ 1 . 6 . 2 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSince Ġwe Ġdon 't Ġuse Ġ@ Jvm Default Ġanywhere , Ġthe Ġoption Ġhas Ġno Ġeffect , Ġbut Ġsupp resses Ġthe Ġb og us Ġcompiler Ġerror ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSee Ġalso Ġhttps :// kotlin lang . org / api / latest / jvm / stdlib / kotlin . jvm /- jvm - default / ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSee Ġalso Ġhttps :// blog . jetbrains . com / kotlin / 2 0 2 0 / 0 7 / kotlin - 1 - 4 - m 3 - generating - default - methods - in - interfaces / ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"- X jvm - default = compatibility " ĊĠĠĠĠĠĠĠ ĠapiVersion Ġ= Ġ" 1 . 5 " ĊĠĠĠĠĠĠĠ Ġlanguage Version Ġ= Ġ" 1 . 5 " ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠFor ĠKotlin ĠMulti platform Ġprojects ĊĠĠĠ Ġ( project . extensions . find ByName (" kotlin ") ĊĠĠĠĠĠĠĠ Ġas ? Ġorg . jetbrains . kotlin . gradle . dsl . Kotlin Multi platform Extension )?. run Ġ{ ĊĠĠĠĠĠ Ġsource Sets . all Ġ{ ĊĠĠĠĠĠĠĠ Ġit . language Settings . opt In (" kotlin . Requires Opt In ") ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠEnsure Ġ" org . gradle . jvm . version " Ġis Ġset Ġto Ġ" 8 " Ġin ĠGradle Ġmetadata Ġof Ġj vm - only Ġmodules . ĊĠĠĠ Ġ// Ġ( multi platform Ġmodules Ġdon 't Ġset Ġthis ) ĊĠĠĠ Ġproject . extensions . getBy Type ( Java Plugin Extension :: class . java ). apply Ġ{ ĊĠĠĠĠĠ Ġsource Compatibility Ġ= ĠJava Version . VERSION _ 1 _ 8 ĊĠĠĠĠĠ Ġtarget Compatibility Ġ= ĠJava Version . VERSION _ 1 _ 8 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠAndroid Ġprojects Ġtarget Ġ 1 . 8 Ġstarting Ġwith Ġ 4 . 2 , Ġno Ġneed Ġto Ġdo Ġanything ĊĠĠĠ Ġ// Ġhttps :// developer . android . com / studio / releases / gradle - plugin # 4 - 2 - 0 ĊĠ Ġ} Ċ } Ċ