Android Studio 3.0.0을 사용하기 시작했지만 프로젝트를 빌드하려고 할 때마다이 오류가 발생합니다.
Error:Circular dependency between the following tasks:
:app:compileDebugKotlin
+--- :app:dataBindingExportBuildInfoDebug
| \--- :app:compileDebugKotlin (*)
\--- :app:kaptDebugKotlin
\--- :app:dataBindingExportBuildInfoDebug (*)
(*) - details omitted (listed previously)
나는 사용하고있다
kapt "com.android.databinding:compiler:2.2.0"
사용하기 전에
androidProcessor "com.android.databinding:compiler:2.2.0"
그리고 그것은 잘 작동하고 있었다 … 내가 뭘 잘못하고 있니 ??
감사!
답변
데이터 바인딩을 추가하려면 모듈 수준에서 앱 .gradle에 3 개의 gradle 항목이 필요한 것 같습니다.
apply plugin: 'kotlin-kapt'
android {
...
dataBinding {
enabled = true
}
}dependencies {
......
kapt "com.android.databinding:compiler:$compiler_version"
}
단일 위치에서 관리 할 수 있도록 프로젝트 수준 빌드 gradle에서 컴파일러 버전을 변수로 만들었습니다.
기본값은 다음과 같습니다. ext.kotlin_version = '1.1.3-2'
대괄호 구문으로 추가했습니다.
ext{
kotlin_version = '1.1.3-2'
compiler_version = '3.0.0-beta6'
}
답변
UPD : 이것은 Android Gradle 플러그인 3.0.0-alpha3에서 수정되었습니다. 프로젝트 루트 build.gradle
에서 buildscript
dependencies
사용하도록 변경하십시오.
classpath 'com.android.tools.build:gradle:3.0.0-alpha3'
이것은 실제로 작업의 입력 및 출력이 설정되는 방식 (따라서 작업이 의존 관계).
KT- 17936 문제를 만들어 주신 @VyacheslavGerasimov 에게 감사드립니다 .
임시 해결 방법으로 Kotlin Gradle 플러그인 1.1.2-2로 되돌리고 증분 컴파일을 비활성화 할 수 있습니다.
프로젝트의 root build.gradle
에서 Kotlin Gradle 플러그인의 버전을 변경합니다.
buildscript {
...
dependencies {
...
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.1.2-2'
}
}
local.properties
다음 줄을 사용하여 프로젝트 루트에 추가 합니다.
kotlin.incremental=false
Kotlin Gradle 플러그인 1.1.2-2 이하가 최신 AGP 버전과 충돌 하는 것은 알려진 문제 이며 증분 컴파일을 비활성화하면 충돌이 해결되는 것 같습니다.
답변
적절한 솔루션을 찾는 사람들을 위해 Google은 이미 Android Studio 3.0 Canary 3 빌드 에서이 문제를 해결했습니다 .
2017 년 6 월 2 일 금요일
Android Studio 3.0 Canary 3을 Canary 및 Dev 채널에 출시했습니다. Android Gradle 플러그인 3.0.0-alpha3도 maven.google.com을 통해 출시되었습니다. 이 릴리스에는 Gradle , Kotlin 및 기타 여러 수정 사항이 수정되었습니다. 기능 안정화를 위해 Studio 3.0의 모든 영역에서 버그를 계속 수정하고 있으므로 계속해서 피드백을 전달해주세요.
작동하는 gradle 구성 :
build.gradle (프로젝트)
buildscript {
ext.kotlin_version = '1.1.2-4'
repositories {
jcenter()
maven {
url 'https://maven.google.com'
}
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.0-alpha3'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
build.gradle (모듈)
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
android {
dataBinding.enabled = true
}
dependencies {
kapt "com.android.databinding:compiler:3.0.0-alpha3"
}
답변
여기 Kotlin을 사용하여 데이터 바인딩 Android 블로그를 작성 했습니다.
Classpath 사용
classpath 'com.android.tools.build:gradle:3.0.0-beta2'
의존
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
android {
...
dataBinding {
enabled = true
}
}
dependencies {
......
kapt 'com.android.databinding:compiler:2.3.1'
}
자세한 내용은이 게시물을 확인하십시오.