diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3AndroidIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3AndroidIT.kt index 256ff646c2b..4abf610dc57 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3AndroidIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3AndroidIT.kt @@ -154,11 +154,23 @@ open class Kapt3AndroidIT : Kapt3BaseIT() { val project = Project("android-databinding", directoryPrefix = "kapt2") setupDataBinding(project, "app") + if (isLegacyAndroidGradleVersion(androidGradlePluginVersion)) { + // Aapt from the older Android SDK crashes with the 'library' subproject structure. + project.projectDir.getFileByName("settings.gradle") + .modify { + assert(it.contains(", ':library'")) + it.replace(", ':library'", "") + } + } + project.build("assembleDebug", "assembleAndroidTest") { assertSuccessful() assertKaptSuccessful() assertFileExists("app/build/generated/source/kapt/debug/com/example/databinding/BR.java") - assertFileExists("library/build/generated/source/kapt/debugAndroidTest/android/databinding/DataBinderMapperImpl.java") + + if (!isLegacyAndroidGradleVersion(androidGradlePluginVersion)) { + assertFileExists("library/build/generated/source/kapt/debugAndroidTest/android/databinding/DataBinderMapperImpl.java") + } if (isLegacyAndroidGradleVersion(androidGradlePluginVersion)) { assertFileExists("app/build/generated/source/kapt/debug/com/example/databinding/databinding/ActivityTestBinding.java") @@ -172,9 +184,9 @@ open class Kapt3AndroidIT : Kapt3BaseIT() { } private fun setupDataBinding(project: Project, projectName: String?) { - if (!isLegacyAndroidGradleVersion(androidGradlePluginVersion)) { - project.setupWorkingDir() + project.setupWorkingDir() + if (!isLegacyAndroidGradleVersion(androidGradlePluginVersion)) { // With new AGP, there's no need in the Databinding kapt dependency: project.gradleBuildScript(projectName).modify { it.lines().filterNot { diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kapt2/android-databinding/app/build.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kapt2/android-databinding/app/build.gradle index 8c918b3bc8c..7c6ae9182be 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kapt2/android-databinding/app/build.gradle +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kapt2/android-databinding/app/build.gradle @@ -31,7 +31,7 @@ repositories { dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" - //kapt "com.android.databinding:compiler:$android_tools_version" + kapt "com.android.databinding:compiler:$android_tools_version" kaptAndroidTest "junit:junit:4.12" compile 'com.android.support.constraint:constraint-layout:1.0.2' testCompile 'junit:junit:4.12'