android - 如何在 Android Studio 3.0.0 中使用数据绑定(bind)和 Kotlin

标签 android android-studio kotlin android-databinding android-studio-3.0

我刚开始使用 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"

它工作得很好......我做错了什么??

谢谢!

最佳答案

UPD:这是为 Android Gradle 插件 3.0.0-alpha3 修复的,在你的项目根 build.gradle 中,更改 buildscript 依赖项使用

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

这是一个 known issue Kotlin Gradle 插件 1.1.2-2 及更低版本与最新的 AGP 版本一起崩溃,禁用增量编译似乎可以修复该崩溃。

关于android - 如何在 Android Studio 3.0.0 中使用数据绑定(bind)和 Kotlin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44148545/

相关文章:

Android:计时表作为持久秒表。如何设置开始时间?什么是计时码表 "Base"?

java - 崩溃可能是由于错误的 Activity 布局

java - 如何从我从 JavaClass 创建的 EditText 中获取文本

java - 无法获取 org.gradle.api.Project 类型的项目 'VERSION_CODE' 的未知属性 ':app'

Kotlin 数据类复制方法不深度复制所有成员

java - 什么是 WindowInsets?

javascript - 无法让 Android 设备成为 Worklight 应用程序部署的目标

android - 如何将 Android 项目升级到 Java 11

android - 长度过滤器不适用于textview吗? -安卓

android - ConstraintSet>>applyTo 将 TextView 的 Alpha 设置为 1f