移至 Gradle Kotlin DSL 构建脚本后数据绑定未解决

Databinding unresolved after move to Gradle Kotlin DSL build scripts

我有一个工作构建,包括数据绑定,但是在将我的 Gradle 构建脚本迁移到 Kotlin DSL 之后,我现在每次使用 import androidx.databinding.DataBindingUtil

都会遇到未解决的符号错误

我的 build.properties.kts 包含以下内容:

plugins {
    id ("com.android.application")
    kotlin ("android")
    kotlin ("android.extensions")
    id ("de.mannodermaus.android-junit5")
}

android {
    lintOptions.isAbortOnError = false

    compileSdkVersion(28)
    defaultConfig {
        // ...
    }
    buildTypes {
        getByName("release") {
            isMinifyEnabled = false
            proguardFiles (getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
        }
    }
    dataBinding.isEnabled = true

    sourceSets {
        getByName("main").java.srcDir("src/main/kotlin")
        getByName("test").java.srcDir("src/test/kotlin")
    }
}

dependencies {
    // ...
}

dataBinding.isEnabled = true 是启用数据绑定的正确方法吗,还是我需要做其他事情? (我知道我可以通过回到 Groovy 来 'fix',但这感觉有点像放弃!)

编辑:2019 年 databinding.isEnabled = true 启用数据绑定的正确方法。

现在请参考公认的解决方案以了解正确的方法。

问题原来出在我的文件命名上。在迁移到 Kotlin DSL 时,我无意中将 gradle.properties 文件重命名为 gradle.properties.kts。重命名文件后,我现在又拥有了一个功能齐全的构建!

这就是我在 kotlin gradle 文件中启用数据绑定的方式:

dataBinding {
    isEnabled = true
}

瞧 ;)

希望这对某人有所帮助

android {
    ...

    buildFeatures {
        dataBinding = true
    }
...

https://developer.android.com/studio/preview/features?hl=en

对于 ViewBinding,您可以使用:

viewBinding.isEnabled = true

你可以这样使用它:

android {

  buildFeatures {
         dataBinding = true

         // for view binding:
         // viewBinding = true
    }
}