使用数据绑定清理项目错误:无法删除文件androidx.databinding.library.baseAdapters--setter_store.json

时间:2019-02-01 05:08:52

标签: android android-studio android-databinding

我使用数据绑定。有时,当我进行更改时,项目可能会中断。然后转到 Build-> Clean project&Re-Build project 。我收到一些奇怪的错误:

Unable to delete file: {path_to_project}\app\build\intermediates\data_binding_dependency_artifacts\debug\dataBindingMergeDependencyArtifactsDebug\out\androidx.databinding.library.baseAdapters--setter_store.json

每次我都不知道如何解决它,因为在清理或重建时会出现此错误。即使我使使缓存无效/重新启动,问题也不会消失。

如果我尝试手动删除此文件,则会收到该文件正在被另一个进程使用的错误消息。然后,我关闭项目并成功删除此文件。但是,当我打开项目并构建它时,会遇到上述相同的错误。

正如我所看到的,问题与数据绑定有关,但是我不确定,因为我在StackOverflow上看到了来自其他用户的其他文件的相同问题。有时问题本身就消失了,但通常不是这样。可能是由于布局文件中的错误而导致出现此问题,但是如果构建日志中没有错误,如何找到它。

有人遇到这个错误吗?有什么想法可以解决这种情况而又不会在不确定的时间范围内破坏整个项目吗?

8 个答案:

答案 0 :(得分:3)

我关闭Android Studio,删除app \ build文件夹,然后重新打开Android Studio。请注意,对于Windows,必须关闭所有AS实例,才能删除构建文件夹。

答案 1 :(得分:2)

因此,问题仍然存在,但所有答案都无法解决。项目由于某种原因无法编译,通常是某种错误,并且如果您只是删除构建文件夹(其中包含Android Studio无法删除的文件)它将无法解决问题< / strong>。

当您尝试编译项目时,在生成的文件中可能会出现很多错误(数据绑定,空间等)。不幸的是,错误不会在通常的窗口中显示,但是如果您用错误扩展生成的文件,则可能会看到真正的问题,您未解决的错误,当您更改与之相关的类时生成的文件。 只需解决这些错误并再次编译项目即可。注意:您可能也应该查看警告。

但是,如果您已经收到错误Unable to delete file,则不会在生成的文件中看到错误。您需要重新启动Android Studio(如果无济于事,则需要删除app \ build)并尝试编译您的项目。之后,您会在生成选项卡中找到带有错误的生成文件。

希望有帮助!

答案 2 :(得分:0)

尝试在gradle.properties中禁用守护程序和并行构建

org.gradle.daemon=false
org.gradle.parallel=false

答案 3 :(得分:0)

首先按照这4个步骤

  • 删除生成的文件(构建文件夹)
  • 清理项目(只需运行cmd命令-> gradlew clean
  • 使缓存无效并重新启动Android Studio
  • 重新启动计算机

如果没有帮助,请尝试执行以下步骤

  • 分级同步;
  • 重新安装Java JRE和Java SDK;
  • 重新安装最新版本的Android Studio
  • 回滚到以前的AS版本
  • 使缓存无效并重新启动Android Studio
  • 删除项目目录中的gradle和.gradle目录;
  • 删除目录中的.gradle目录;
  • 运行gradlew clean(只需运行cmd命令-> gradlew clean

答案 4 :(得分:0)

我尝试了上面的大多数解决方案,但似乎找不到它们。 但是,这是我为使项目重新启动并运行而做的事情。

我认为这是因为您正在使用dataBinding。 浏览到应用程序gradle文件中的dataBinding部分

现在通过设置为false来禁用dataBinding。 接下来,重建您的项目,您会注意到一个错误,该错误用于处理xml文件中缺少dataBinding的问题。

下一次通过设置为true来启用dataBinding。 接下来,重建您的项目。

它应该已经清除了这个奇怪的错误。

请原谅我的奇怪解释,但它是促成stackoverflow的新手。

答案 5 :(得分:0)

在Android Studio终端中放置以下命令。

gradlew --stop

答案 6 :(得分:0)

这是由于数据绑定缓存问题。我们需要通过先禁用该缓存来删除它。更改gradle.properties文件的属性后,我解决了该问题:

org.gradle.daemon=false
org.gradle.parallel=false
android.enableBuildCache=false
org.gradle.caching= false
android.databinding.enableV2=false

dataBinding {
        enabled = false
    }

清理并重建项目。重建后将显示错误。然后更改所有配置(使所有属性为true)并清理,重建。绝对可以。

答案 7 :(得分:0)

我有同样的问题,并尝试了上述方法。在项目目录中搜索时,在错误消息中找不到相关的类。

最后,我怀疑这可能是~/.gradle问题,然后在删除后重新编译,最后解决了。

mv ~/.gradle ~/.gradle_bak