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"
そして、それはうまく機能していました...私が間違っているのは何ですか??
ありがとう!
データバインディングを追加するには、モジュールレベルでapp .gradleに3つのgradleエントリが必要なようです
apply plugin: 'kotlin-kapt'
Android { ... dataBinding { enabled = true } }
dependencies { ...... kapt "com.Android.databinding:compiler:$compiler_version" }
コンパイラバージョンをプロジェクトレベルのビルドグラドルで変数にしたため、1つの場所から管理できます。
デフォルト: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で修正され、youtプロジェクトルートbuild.gradle
で、buildscript
dependencies
をつかいます
classpath 'com.Android.tools.build:gradle:3.0.0-alpha3'
これは実際には、タスクの入力と出力の設定方法が原因で発生する、Kotlin Gradleプラグイン1.1.2-4とAndroid Gradleプラグイン3.0.0-alpha1との相互運用のバグです(したがって、タスクが依存関係にどのように接続されているか)。
おかげで @ VyacheslavGerasimov 問題を作成してくれて KT-17936 。
一時的な回避策として、Kotlin Gradleプラグイン1.1.2-2に戻し、インクリメンタルコンパイルを無効にすることができます。
プロジェクトのルート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 buildでこの問題を既に修正しています。
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のすべての領域でバグの修正を続けていますので、引き続きフィードバックをお寄せください。
作業用グラドル構成:
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のブログを書いています here
クラスパスを使用
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'
}
詳細については、こちらをご覧ください post