Je viens de commencer à utiliser Android Studio 3.0.0, mais chaque fois que j'essaie de construire mon projet, l'erreur suivante apparaît:
Error:Circular dependency between the following tasks:
:app:compileDebugKotlin
+--- :app:dataBindingExportBuildInfoDebug
| \--- :app:compileDebugKotlin (*)
\--- :app:kaptDebugKotlin
\--- :app:dataBindingExportBuildInfoDebug (*)
(*) - details omitted (listed previously)
J'utilise
kapt "com.Android.databinding:compiler:2.2.0"
Avant j'utilisais
androidProcessor "com.Android.databinding:compiler:2.2.0"
Et ça fonctionnait très bien… Ce que je fais mal ??
Merci!
Il semble que vous ayez besoin de 3 entrées Gradle dans l'application .gradle au niveau du module pour ajouter la liaison de données.
apply plugin: 'kotlin-kapt'
Android { ... dataBinding { enabled = true } }
dependencies { ...... kapt "com.Android.databinding:compiler:$compiler_version" }
Notez que j'ai fait de la version du compilateur une variable dans la palette de construction au niveau du projet afin de pouvoir la gérer à partir d'un seul endroit.
la valeur par défaut était: ext.kotlin_version = '1.1.3-2'
J'ai ajouté avec la syntaxe du crochet:
ext{
kotlin_version = '1.1.3-2'
compiler_version = '3.0.0-beta6'
}
UPD: Cela a été corrigé pour Android Gradle plugin 3.0.0-alpha3, dans votre racine de projet build.gradle
, changez la buildscript
dependencies
à utiliser
classpath 'com.Android.tools.build:gradle:3.0.0-alpha3'
Il s’agit en fait d’un bogue dans l’interopérabilité du plug-in Kotlin Gradle 1.1.2-4 avec le plug-in Android Gradle 3.0.0-alpha1, causé par la manière dont les entrées et les sorties des tâches sont définies (et donc comment les tâches sont liées à la relation de dépendance).
Merci @ VyacheslavGerasimov pour avoir créé le problème KT-17936 .
Pour résoudre temporairement ce problème, vous pouvez essayer de revenir au plugin Kotlin Gradle 1.1.2-2 et désactiver la compilation incrémentielle:
Dans la racine de votre projet build.gradle
, changez la version du plugin Kotlin Gradle:
buildscript {
...
dependencies {
...
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.1.2-2'
}
}
Ajoutez local.properties
à la racine du projet, avec la ligne suivante:
kotlin.incremental=false
Le problème conn signifie que le plugin Kotlin Gradle 1.1.2-2 et inférieur se bloque avec les versions les plus récentes de AGP, et la désactivation de la compilation incrémentielle semble résoudre ce problème.
Pour ceux qui recherchent toujours une solution appropriée, Google a déjà résolu ce problème dans Android Studio 3.0 Canary build.
Vendredi 2 juin 2017
Nous venons de publier Android Studio 3.0 Canary 3 sur les canaux Canary et Dev. Le Android Gradle Plugin 3.0.0-alpha3 a également été publié sur maven.google.com. Cette version corrige Gradle , Kotlin et de nombreux autres correctifs. Nous continuons à corriger les bogues dans tous les domaines de Studio 3.0 à mesure que nous stabilisons nos fonctionnalités. Continuez donc à transmettre vos commentaires.
Configuration du niveau de travail:
build.gradle (projet)
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 (module)
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"
}
J'ai récemment écrit Blog for Data Binding Android avec Kotlin ici
Utiliser Classpath
classpath 'com.Android.tools.build:gradle:3.0.0-beta2'
Dépendance
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'
}
pour plus de détails, consultez ceci post