179

我正在尝试重建我的 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 重构来做到这一点,这是一个坏主意。

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

  • 进行 Gradle 同步;
  • 重新安装 Java JRE 和 Java SDK;
  • 重新安装最新版本的Android Studio(1.4);
  • 回滚到之前的 AS 版本(1.3);
  • 使AS缓存失效并重启;
  • 删除项目目录下的gradle.gradle目录;
  • 删除.gradle我的用户目录中的目录;
  • gradlew clean从 AS 终端运行;
  • 手动将源复制到一个新项目(奇怪的是它以某种方式在项目中持续存在......)

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

  • 关闭AS,手动删除构建文件,再次打开;
  • 在ASjava.exe运行时终止进程(从技术上讲,这可以每次都完成,但它很乏味并且会减慢构建过程)

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

更新:

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

更新 2:

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

4

42 回答 42

129

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

于 2015-11-26T16:45:47.007 回答
123

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

我已经在错误跟踪器上提交了一个问题。

于 2016-03-02T16:13:24.130 回答
51

尝试 File -> Invalidate Caches and Restart

这对我有用

于 2016-09-15T06:56:53.140 回答
30

在我向 Kotlin 错误跟踪器发布错误报告后,我在 AOSP 跟踪器上收到了问题 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 任务运行时强制且静默地解锁和删除构建文件。

于 2015-10-03T15:33:05.540 回答
30

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

在此处输入图像描述

于 2016-05-19T05:41:12.217 回答
20

我用命令解决了:

taskkill /F /IM java.exe

接着:

gradle assembleDebug 
于 2019-03-28T07:57:37.807 回答
16

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

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

于 2016-05-21T16:02:46.307 回答
10

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

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

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

于 2016-05-23T06:42:22.203 回答
5

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

于 2017-12-07T11:28:09.543 回答
5

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

  1. 关闭安卓工作室。
  2. 删除intermedias目录(只要打开Android Studio,这个目录是不能删除的)
  3. 再次打开 Android Studio
于 2017-11-18T15:14:51.460 回答
5

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

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

于 2017-10-05T14:14:51.130 回答
3

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

或者

只需运行 cmd 命令-> gradlew clean

在工作空间的项目文件夹中(对我有用)

于 2016-06-30T12:38:32.907 回答
3

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

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

于 2016-11-05T18:25:03.627 回答
3

解决方案非常简单。

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

您的项目的app/build/outputs/apk 文件夹可能已打开。

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

于 2016-05-21T12:20:02.037 回答
3

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

  1. 检查系统(Ubuntu)中运行的进程,例如在 Windows 的任务管理器中。

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

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

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

它对我有用,没有任何问题。希望这可以帮助...

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

于 2016-04-19T06:44:51.560 回答
3

对我来说,当我再Exit Android Studio单击一次Clean Project(它出现相同的错误)和下一次单击时,它会有所帮助Make Project- 当然Run 'app'是在 Android Studio 中的那个按钮之后。

于 2016-06-01T16:38:24.050 回答
3

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

很简单:

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

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

于 2018-06-21T23:12:44.577 回答
2

我只需运行 cmd 命令 - > gradlew clean ,它就解决了这个问题

于 2020-06-05T13:17:54.703 回答
2

对于我的情况,我通过以下方式解决它 -

  1. 首先,如果应用程序正在模拟器中运行,请关闭它。
  2. 然后在Android studiogradle --stop终端中运行命令。
  3. 然后清理项目重建项目
于 2020-09-14T07:15:44.433 回答
2

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

  1. 关闭工作室
  2. 删除 projectRoot/build/ 和 projectRoot/app/build/
  3. 重启工作室
于 2018-04-22T06:30:16.863 回答
2

正如错误报告中所建议的那样,取消注释该行

idea.jars.nocopy=false

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

请注意,每次 Android Studio 更新时都需要这样做。

于 2016-12-06T00:00:24.137 回答
2

反应原生开发者

sudo cd android && ./gradlew clean

如果你想发布 apk

sudo cd android && ./gradlew assembleRelease

希望它会帮助某人

于 2019-09-15T13:42:14.703 回答
1

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

于 2017-10-30T10:01:46.043 回答
1

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

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

完成上述操作后,我在文件资源管理器中找到了该文件并手动提取了它。如果它试图删除它,我认为它在 android studio 项目中是不需要的。

于 2019-07-30T10:29:10.227 回答
1

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

于 2020-10-07T07:03:47.033 回答
1

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

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

/F 修复磁盘上的错误

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

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

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

现在重建项目

于 2018-07-17T08:18:28.187 回答
1

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

于 2020-05-01T11:26:44.517 回答
1

如果您使用本地后端(本地谷歌应用程序引擎上的 java servlet)进行测试,则正在运行的进程会阻止一些文件。因此,您无法进行实时部署。因此,在这种情况下,您可以通过在开始清理或构建之前停止本地后端来解决此问题。您可以在“运行 -> 停止后端”下找到该选项。

于 2016-08-10T15:35:30.253 回答
0

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

于 2020-04-05T20:36:51.237 回答
0

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

运行react-native run-android对我有用。

于 2017-02-01T21:01:18.430 回答
0

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

于 2016-05-02T06:36:51.777 回答
0

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

于 2016-04-12T14:26:55.647 回答
0

尝试手动删除这些文件

就我而言,我刚刚build从项目和子项目中删除了所有目录

于 2021-01-15T13:38:24.227 回答
0

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

于 2018-07-29T08:33:12.623 回答
0

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

于 2018-08-23T17:37:19.870 回答
0

在 Android Studio 中清理项目并再次运行解决了该问题。也可以做“制作项目”。

于 2016-08-01T03:28:39.937 回答
0

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

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


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

于 2022-02-16T21:16:29.463 回答
0

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

于 2016-12-24T13:56:03.330 回答
0

对我有用的是关闭visual studio代码并再次打开它......我猜apk文件夹是在代码中的某个地方打开的......所以试试它也可能对你有用

于 2018-08-06T18:38:15.983 回答
0

我正在使用 Android Studio 3.0 Beta 7。清理项目、使缓存无效、重新启动工作室不起作用,但将 Kotlin 版本更新到 1.1.51 并重新启动工作室为我解决了这个问题。

于 2017-11-02T18:39:20.843 回答
0

简单的解决方案:

在 android 或任何 jetbrains 产品中,当您点击时,您会发现“缓存无效并重新启动”点击它,所有问题都将得到解决

于 2018-12-06T01:31:25.790 回答
-3

从构建选项选项卡执行以下步骤:1)清理项目 2)重建项目 3)制作项目

于 2018-10-30T04:21:01.917 回答