Error: Execution failed for task ':app:clean'. Unable to delete file

Error: Execution failed for task ':app:clean'. Unable to delete file

我正在尝试重建我的 Android Studio Gradle 项目(主要包含 Kotlin 代码),但它在 cleaning/rebuilding 过程中开始抛出 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.0.1\jars\classes.jar

这在我尝试更改项目的包结构后开始发生。不幸的是,我是通过重命名和移动源文件夹而不是通过 Android Studio 重构来实现的,这是一个坏主意。

我整天都在寻找解决这个问题的方法,这些是我尝试过但无济于事的方法:

我尝试过的事情有点成功,但只让我在错误再次发生之前再执行一次清理和重建:

所以编译 Java 过程似乎可能出于某种原因锁定构建文件,但也可能与 Kotlin 有关。我有一个(更成熟的)Java Android 项目正在处理,尽管我在清理它时无法重现此错误。它似乎只发生在我的 Kotlin 项目中。

更新:

我发现问题是由 Kotlin Android 插件引起的。当我从模块的 build.gradle 文件中删除 apply plugin: 'kotlin-android' 并在我重新插入它时问题又回来了。请随时提供对此的任何见解。

更新 2:

最后一次更新不是原因。我发现如果项目包含 Kotlin 文件,则重建和清理会失败。它继续失败,即使所有 Kotlin 文件都被删除,直到后台 Java 进程被终止,这意味着它对构建文件有某种锁定。我在这里提交了一个错误,其中包含更多详细信息和重现该错误的步骤:KT-9440

在我向 Kotlin 错误跟踪器发布错误报告后,我在 AOSP 跟踪器上收到了 Issue 61300 的通知。好像是这个原因。由于目前我无能为力,所以我会将此问题标记为已回答,如果错误已修复,我会更新答案。

同时,如果您是 运行 Windows,我相信我已经找到了解决方法。您需要下载 LockHunter(当然风险自负),然后将以下内容添加到模块的 gradle.build 文件中,将 lockhunter 变量替换为 LockHunter.exe 的路径]:

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

这会导致 LockHunter 在 app:clean 任务运行时强制且静默地解锁和删除构建文件。

我在任务管理器中杀死了所有 java TM 进程,它让我重建

如果您使用的是 Android Studio 2.0 Beta,则可能会出现此问题(如果您使用的是 NTFS 文件系统,则更有可能出现)并且似乎 "Instant Run" 是罪魁祸首。在设置中搜索 "Instant Run" 并取消选中复选框。

我已经在错误跟踪器上提交了 issue

我在 android studio 2.0 稳定频道中出现了这个问题,解决方案是由于更新我的 android studio 时发生的问题我通过安装新的 android 解决了这个问题工作室。删除旧安装的所有旧文件后。并保留 Instant 运行

非常好的功能

我在 ubuntu 中这样解决了这个问题。

  1. 检查系统中的进程 运行(Ubuntu),就像在 windows.

    中的任务管理器中一样

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

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

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

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

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

如果您仍有问题,请更新到最新版本的 Android Studio(目前为 2.1),这可能是旧版本 Android Studio 的错误。现在帮我解决了。

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

解决方法很简单。

这是对我有用的解决方案之一。

It might be possible that your project's app/build/outputs/apk folder is opened.

所以只需关闭此文件夹并重建您的项目。就会解决的。

删除目录 intermediates 可以快速解决问题。

重建项目时会重建该目录。

我在 Android Studio 2.2 预览版 1 上遇到了同样的问题,@AndresSuarez 的解决方案是正确的,但由于某些原因,我在我的任务管理器中找不到 JAVA TM 进程。所以我尝试了以下解决方案并且有效 -

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

此外,您可以创建一个.bat文件,在其中添加上面的代码,然后运行每次遇到问题时都

对我来说,当我 Exit Android Studio,再点击一次 Clean Project(出现同样的错误)并再次点击 Make Project - 当然是 Run 'app' 按钮在 Android Studio 中。

有时中间体会产生问题,因此将其删除并重建项目

只需运行 cmd命令-> gradlew clean

在你的项目文件夹中工作space(它对我有用)

在 Android studio 中清理项目并 运行 再次解决了这个问题。也可以做 "Make Project"。

如果您使用本地后端(java 本地 google 应用程序引擎上的 servlet)进行测试,运行 进程会阻止一些文件。所以你无法实时部署。所以在这种情况下,您可以通过在开始清理或构建之前停止本地后端来解决这个问题。您可以在 "Run -> Stop backend".

下找到该选项

试试看 文件 -> 使缓存无效并重新启动

这对我有用

找到使用app/build/outputs/apk文件夹的程序,然后直接删除文件夹。

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

A​​s suggested in the bug report,取消注释行

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。清理项目、使缓存无效、重新启动 studio 都不起作用,但是将 Kotlin 版本更新到 1.1.51 并重新启动 studio 为我解决了这个问题。

我遇到了同样的问题,这对我有用:

  1. 关闭Android工作室。
  2. 删除intermediates目录(只要AndroidStudio打开,这个目录就不能删除)
  3. 再次打开Android工作室

对我来说,这是因为活跃的调试过程。因此,在清理或重建之前,请确保终止所有活动进程。确定成功,执行Invalidate Caches/Restart.

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

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

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

很简单:

Task Manager > End process adb.exe

然后可以自由删除文件,清理项目

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

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

/F 修复磁盘上的错误

/R 定位坏道并恢复可读信息(隐含/F)

/X 如有必要,首先强制卸载卷(暗示 /F)(重要)

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

现在重建项目

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

对我有用的是关闭 visual studio 代码并再次打开它... 我猜 apk 文件夹是在代码中的某处打开的…… 所以只要尝试一下它可能对你也有用

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

在构建选项选项卡中按照以下步骤操作: 1)清洁项目 2) 重建项目 3) 制作项目

简单的解决方案:

在android或者任何jetbrains的产品中,当你点击你会发现'invalidate cache and restart '点击它,所有的问题都会得到解决

我用命令解决了:

taskkill /F /IM java.exe

然后:

gradle assembleDebug 

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

问题是其他人创建了该文件,因此即使我在计算机上拥有管理员权限,我也无法对一个或多个文件进行更改。您需要进入文件或文件夹的属性并更改所有权或添加所有权。 This web page 一步一步地解释你需要做什么。

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

React 本机开发者

运行

sudo cd android && ./gradlew clean

如果你想发布apk

sudo cd android && ./gradlew assembleRelease

希望对大家有所帮助

虽然已经有人回答了,但我来自一个非android项目并找到了这个,但它不能解决我的问题。如果有人看到此错误,请通过文件管理器手动删除 "build" 文件夹。对我来说,这修复了无法在 Kotlin 中编译的代码。

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

我只是 运行 cmd 命令 -> gradlew clean ,它解决了问题

对于我的情况,我通过-

解决
  1. 首先,如果应用程序在模拟器中 运行ning,请关闭该应用程序。
  2. 然后运行在终端Android工作室中的命令gradle --stop
  3. 然后清理项目重建项目

我已尝试删除所有 Java 服务,但在从 IntelliJ 终端执行 gradlew clean build 命令时仍然失败。我什至验证了我在某处打开的其他应用程序与我尝试删除的路径相同。但找不到任何这样的。所以,终于重启了 IntelliJ IDE 并且能够顺利地进行构建。

尝试手动删除这些文件

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

我在 2022 年尝试在 react-native 中构建我的 android 项目时遇到相同的 unable to delete file gradle 错误。在 mac 上处理项目时,我没有遇到任何问题,但是当我切换到 Windows 时,我的构建会失败。我发现清理项目通常会解决构建失败问题,而且我很懒,所以我添加了 npm 脚本来清理 windows 和 mac 的项目,这是我的问题的一部分。

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


长话短说,如果您正在使用 react-native 并且收到此错误 watchman watch-del-all 可能会有所帮助,即使在 Windows