数据绑定 - 无法复制全部内容

Data Binding - Failed to copy full contents

我的应用程序具有包含许多模块的结构。当我构建应用程序时,我通常会遇到此错误,我无法确定原因...

Failed to copy full contents from 
'D:\Projects\MyCompanyName\myproject\build\myproject\module1\intermediates\data_binding_base_class_log_artifact\debug\out\com.mycompanyname.myproject-binding_classes.json' 
to 
'D:\Projects\MyCompanyName\myproject\build\myproject\module2\intermediates\data_binding_base_class_logs_dependency_artifacts\debug\out\com.mycompanyname.myproject-binding_classes.json'

这发生在不同的模块上。之前我重启2-3次项目就正常构建了。但是随着模块的增多,这个错误开始更频繁地出现。我什至尝试更改构建目录:

allprojects {
    buildDir = rootProject.buildDir.path + "/${project.name}"
}

但没有帮助:/

我找到原因了。在我的项目 Gradle 中,我有一段代码在模块的 Gradle 文件中应用了一些常用值。 除了我在那里启用数据绑定的所有内容:

afterEvaluate { project ->
    if (project.hasProperty('android')) {
        android {
            dataBinding {
                enabled = true
            }

            // Other stuff here
        }
    }
}

但并不是每个模块都实现了数据绑定(尤其是持久层模块)。所以,答案是你应该只在那些实现数据绑定的模块和应用程序模块中放置启用数据绑定的行。

就我而言,点击 Build 然后点击 Android Studio 上的 Clean Project 解决了问题。