错误: 任务“ : app: clean”执行失败。无法删除文件

我正在尝试重建我的 Android Studio Gradle 项目(主要包含 Kotlin 代码) ,但在清理/重建过程中它开始抛出一个 UnableToDeleteFileException:

Execution failed for task ':app:clean'.
> Unable to delete file: C:\Users\User\KotlinGameEngine\app\build\intermediates\exploded-aar\com.android.support\appcompat-v7\23.0.1\jars\classes.jar

这是在我试图更改项目的包结构之后开始发生的。不幸的是,我是通过重命名和移动源文件夹来做到这一点的,而不是通过 Android Studio 进行重构,这是一个糟糕的主意。

我一整天都在寻找这个问题的解决方案,以下是我试图解决却无济于事的问题:

  • 做一个分级同步;
  • 重新安装 JavaJRE 和 JavaSDK;
  • 重新安装最新版本的 Android Studio (1.4) ;
  • 回滚到之前的 AS 版本(1.3) ;
  • 使 AS 缓存失效并重新启动;
  • 删除项目目录中的 gradle.gradle目录;
  • 删除用户目录中的 .gradle目录;
  • 从 AS 终端运行 gradlew clean;
  • 手动将源代码复制到一个新项目中(奇怪的是,它以某种方式跨项目持久存在... ...)

我已经尝试了一些成功的方法,但是只让我在错误再次发生之前再执行一次清理和重新构建:

  • 关闭 AS,手动删除生成文件,然后再次打开它;
  • 在 AS 运行时停止 java.exe进程(这在技术上每次都可以做到,但是这很繁琐并且会减慢构建过程)

因此,由于某种原因,编译 Java 过程可能会锁定构建文件,但它也可能与 Kotlin 有关。我有一个(更成熟的) JavaAndroid 项目,我正在工作,虽然我不能重现这个错误时,清理它。这似乎只发生在我的科特林项目上。

更新:

我发现这个问题是由 Kotlin Android 插件引起的。当我从模块的 build.gradle文件中删除 apply plugin: 'kotlin-android'并重新插入它时,问题就消失了。请随意提供任何关于这方面的见解。

更新2:

最后一次更新不是原因。我发现,如果一个项目包含一个 Kotlin 文件,那么重建和清理就会失败。即使所有的 Kotlin 文件被删除,它仍然会继续失败,直到后台 Java 进程被关闭,这意味着它对 build 文件有某种锁定。我在这里提交了一个 bug,其中包含了更多细节和重现该 bug 的步骤: KT-9440

249899 次浏览

在我向 Kotlin 的 bug 跟踪器发布了一个 bug 报告之后,我被通知了 AOSP 跟踪器上的 第61300期。似乎就是这个原因。由于目前我无能为力,我将把这个问题标记为已回答,如果 bug 已修复,我将更新答案。

与此同时,如果你在运行 Windows,我相信我已经找到了一个变通方法。您需要下载 洛克亨特(当然是您自己承担风险) ,然后将以下内容添加到模块的 gradle.build文件中,用您到 LockHunter.exe 的路径替换 lockhunter变量:

task clean(type: Exec) {
ext.lockhunter = '\"C:\\LockHunter.exe\"'
def buildDir = file(new File("build"))
commandLine 'cmd', "$lockhunter", '/delete', '/silent', buildDir
}

这导致 LockHunter 在应用程序: clean 任务运行时强制而无声地解锁和删除构建文件。

我关闭了任务管理器中的所有 java TM 进程,它允许我重新构建

如果您正在使用 Android Studio 2.0 Beta,这个问题可能会出现(如果您正在使用 NTFS 文件系统,则更有可能出现这个问题) ,似乎“即时运行”是罪魁祸首。在设置中搜索“即时运行”并取消选中框。

我已经在追踪器上做了 问题记录。

这个问题出现在我的 android 工作室2.0稳定通道和解决方案是由于一个问题,而发生在我的 android 工作室升级我解决了这通过安装一个新鲜的 android 工作室。删除旧安装的所有旧文件后。并保持即时运行的非常好的功能

我用我的 Ubuntu 解决了这个问题,就像这样。

  1. 检查系统中运行的进程(Ubuntu) ,就像 Windows 中的任务管理器一样。

    Ubuntu 终端命令列出所有运行的进程—— > “ gnome-system-monitor”

  2. 终止或结束列表中的 JAVA 和 ANDROID 进程。

  3. 再次启动工作室和导入项目。

它对我来说没有任何问题。希望这有助于..。

我认为这是已经创建和复制的过程的问题。

如果你仍然有问题,那么升级到最新版本的 Android Studio (现在是2.1版本) ,可能是旧版本 Android Studio 的 bug。现在对我来说已经解决了。

使用此命令 gradlew clean从终端清除项目。

enter image description here

解决方法很简单。

这是对我有效的解决办法之一。

可能您的项目的 < strong > app/build/output/apk 文件夹已打开。

所以只要关闭这个文件夹,重建你的项目。这将得到解决。

删除目录 intermediates是解决问题的快速方法。

在重新生成项目时,将重新生成目录。

我在 Android Studio 2.2预览1中也遇到了同样的问题,@AndresSuarez 的解决方案是正确的,但是由于某些原因,我无法在我的任务管理器中找到 JAVA TM 进程。所以我尝试了下面的解决方案,它的工作-

打开 命令提示符键入 TASKKILL /F /IM java.exe。这将自动终止所有 JAVA TM 进程。现在重新编译应用程序,它将工作。

此外,您可以创建一个 。蝙蝠文件,在其中添加上述代码,并在每次遇到问题时运行它。

对我来说,当我选择 Exit Android Studio时,再次单击 Clean Project(出现同样的错误) ,然后再次单击 Make Project-当然是在 Android Studio 中的 Run 'app'按钮之后。

有时候中间人制造问题,所以删除它和重建项目

或者

只需运行 cmd 命令-> gradlew clean

在您的项目文件夹中的工作空间(它的工作为我)

在 Android 工作室中清理项目并再次运行修复了问题。也可以做“制作项目”。

如果你正在测试一个本地后端(本地谷歌应用程序引擎上的 java servlet)运行进程阻塞一些文件。所以你不能生活部署。因此在这种情况下,您可以通过在开始清理或构建之前停止本地后端来解决这个问题。您可以在“ Run-> Stop backend”下找到选项。

文件-> 使缓存失效并重新启动

这招对我很管用

查找使用 App/build/output/apk文件夹的程序,然后删除文件夹。

我认为 Android Studio 在重建之前必须删除旧的 apk 文件夹。

作为 在错误报告中建议,取消对行的注释

idea.jars.nocopy=false

idea.properties文件中已经为我解决了这个问题。

请注意,这需要在每次 Android Studio 更新时执行。

我有同样的问题,我解决了它通过移动项目文件夹到 ext4分区

我也犯了同样的错误,尝试了多种方法,但对我有效的解决方案是从/android 和/android/app 目录中删除构建文件夹。

运行 react-native run-android为我工作。

我在 Android Studio 2.3中遇到过这个问题。

我只是简单地重新启动了 Android Studio,之后我就可以毫无怨言地清理了。

我通过全局搜索项目中缺失的目录解决了这个问题。然后删除包含该关键字的所有文件。它可以成功清理后,我删除所有的 build.externalNativeBuild目录手动。

我正在使用 Android Studio 3.0 Beta 7。清洁项目,无效缓存,重新启动工作室没有工作,但更新 Kotlin 版本为1.1.51和重新启动工作室为我解决了这个问题。

我也有同样的问题,这对我很有效:

  1. 关闭 Android Studio。
  2. Delete 中间目录(只要打开 Android Studio,就不能删除此目录)
  3. 再次打开 Android Studio

对我来说,这是因为 主动调试过程主动调试过程。因此,在清理或重建之前,确保关闭所有活动进程。为了确定成功,执行 无效缓存/重新启动

在 Android Studio 3.0中,我也遇到了同样的问题,这次修复了它:

  1. 关闭工作室
  2. 删除 projectRoot/build/和 projectRoot/app/build/
  3. 重启工作室

对我来说,罪魁祸首是 Adb持有 apk 文件,因为我使用它来安装和启动我的物理设备上的应用程序通过命令行。

如此简单:

任务管理器 > 结束进程 Adb.exe

然后文件就可以自由删除,项目也可以被清除

在将项目从 D: 移动到 G: drive 之后,我也遇到了同样的问题 但是磁盘检查解决了我的问题

我使用 < strong > chkdsk/f/r/x G: ** 这里使用了一些命令行开关: * *

修正磁盘上的错误

定位坏扇区并恢复可读信息(暗示/F)

如果需要,强制首先卸载卷(意味着/F)(重要)

注意:/X 很重要,因为它将卸载驱动器,您可以手动删除项目的 建造目录,

现在重建项目

我的解决方案非常非常简单(如果您使用 Windows)。 1-关闭 Android Studio。 2-以管理员身份运行 Android Studio。 3就是这样。

对我来说最有效的方法就是关闭视觉工作室代码,然后再打开它。 我猜 APK 文件夹是用密码打开的。 所以试试吧,也许对你也有用

在我的案例中,node.js在构建文件夹中使用了一些资源(我的应用程序在 reactnative中)。所以我杀了 node.js解决了这个问题。

按照以下步骤构建选项卡: 1)清洁工程 2)重建工程 3)进行工程项目

简单的解决办法:

在 android 或任何 jetbrain 产品当你点击时,你会发现‘失效缓存和重新启动’点击它,所有的问题都将得到解决

我用命令解决了:

taskkill /F /IM java.exe

然后:

gradle assembleDebug

我刚为自己解决了这个问题。

问题是别人已经创建了文件,所以即使我有管理员权限的计算机上,我无法作出更改的文件或文件。您需要进入文件或文件夹的属性并更改所有权或添加所有权。这个网页很好地一步一步地解释了你需要做什么。

完成上述操作后,我在文件资源管理器中找到了该文件,并手动解压缩了它。我不认为它需要在安卓工作室的项目,如果它试图删除它反正。

本地开发人员的反应

快跑

sudo cd android && ./gradlew clean

如果你想释放 APK

sudo cd android && ./gradlew assembleRelease

希望能帮到别人

虽然这已经得到了回答,我来自一个非机器人项目和发现这一点,但它不能解决我的问题。如果有人看到此错误,请通过文件管理器手动删除“构建”文件夹。对我来说,这修复了在 Kotlin 编译失败的代码。

另一个可以使用这些资源的应用显然是 Android Studio 的 Kotlin REPL。我关闭了它,然后我就可以重建了,没有问题。

我只是简单地运行 cmd 命令-> gradlew 干净,它修复的问题

对于我的情况,我解决它通过-

  1. 首先,关闭在模拟器中运行的应用程序。
  2. 然后在 安卓工作室晚期中运行命令 gradle --stop
  3. 然后是 清洁工程重建计划

我试图删除所有的 Java 服务,但是在从 IntelliJ 终端执行 格拉德鲁干净的身材命令时仍然失败。我甚至验证了其他应用程序,我已经打开的地方相同的路径,我正在尝试删除。但是找不到任何这样的东西。因此,最终重新启动了 IntelliJIDE,并能够顺利地进行构建。

尝试手动删除这些文件

在我的例子中,我只是从项目和子项目中删除了所有的 build目录

这里在2022年我有相同的 unable to delete file级错误,而试图建立我的机器人项目在反应本机。在 Mac 上做这个项目时,我没有遇到任何问题,但是当我切换到 Windows 时,我的构建就会失败。我发现清理项目通常会解决构建失败的问题,而且我很懒,所以我添加了 npm 脚本来清理 Windows 和 Mac 的项目,这也是我的问题之一。

在 macOS 上,我的干净脚本包括 watchman watch-del-all,而我的 Windows 没有。我是我,完全忘记了我已经安装了守望者测试版,这就是为什么我的项目无法删除。


长话短说,如果您使用的是本地反应,并得到这个错误 watchman watch-del-all可能会有所帮助,即使在 Windows 上