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

时间:2015-10-02 19:30:12

标签: android android-studio android-gradle kotlin kotlin-android-extensions

我正在尝试重建我的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目录;
  • 从AS终端运行gradlew clean;
  • 手动将源代码复制到一个新项目(奇怪的是它在项目中以某种方式存在......)

我尝试了一些有点成功的事情,但只是让我再次执行一次干净并重新构建错误:

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

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

更新

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

更新2:

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

41 个答案:

答案 0 :(得分:119)

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

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

答案 1 :(得分:95)

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

答案 2 :(得分:31)

尝试          档案 - >使缓存无效并重新启动

这对我有用

答案 3 :(得分:25)

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

与此同时,如果您正在运行Windows,我相信我找到了解决方法。您需要下载LockHunter(当然风险自负),然后将以下内容添加到模块的gradle.build文件中,将lockhunter变量替换为您的task clean(type: Exec) { ext.lockhunter = '\"C:\\LockHunter.exe\"' def buildDir = file(new File("build")) commandLine 'cmd', "$lockhunter", '/delete', '/silent', buildDir } 变量LockHunter.exe的路径:

{{1}}

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

答案 4 :(得分:19)

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

enter image description here

答案 5 :(得分:12)

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

重建项目时将重建目录。

答案 6 :(得分:5)

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

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

答案 7 :(得分:4)

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

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

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

答案 8 :(得分:3)

对我来说,这是因为主动调试过程。因此,在清理或重建之前,请确保终止所有活动进程。要确定成功,请执行使兑现/重新启动无效

答案 9 :(得分:3)

对我而言,当我Exit Android Studio时,再次点击Clean Project(看似相同的错误),然后点击Make Project - 当然Run 'app'按钮在Android Studio中。

答案 10 :(得分:3)

有时候中间人会产生问题所以删除它并重建项目

OR

只需运行cmd命令 - > gradlew clean

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

答案 11 :(得分:3)

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

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

答案 12 :(得分:2)

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

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

    Ubuntu终端命令列出所有正在运行的进程----> "侏儒系统监测"

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

  3. 再次启动工作室并导入项目。
  4. 它对我没有任何问题。希望这会有所帮助...

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

答案 13 :(得分:2)

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

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

答案 14 :(得分:2)

作为suggested in the bug report,取消注释该行

idea.jars.nocopy=false
idea.properties文件中的

已经为我解决了这个问题。

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

答案 15 :(得分:2)

解决方案非常简单。

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

  

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

所以只需关闭此文件夹并重建您的项目即可。它将被解决。

答案 16 :(得分:1)

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

答案 17 :(得分:1)

我只需运行cmd命令-> gradlew clean,即可解决问题

答案 18 :(得分:1)

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

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

答案 19 :(得分:1)

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

答案 20 :(得分:1)

与本地开发者互动

运行

sudo cd android && ./gradlew clean

如果要发布apk

sudo cd android && ./gradlew assembleRelease

希望它将对某人有所帮助

答案 21 :(得分:1)

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

那么简单:

  

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

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

答案 22 :(得分:1)

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

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

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

答案 23 :(得分:1)

我用命令解决了:

taskkill /F /IM java.exe

然后:

gradle assembleDebug 

答案 24 :(得分:0)

尝试手动删除这些文件

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

答案 25 :(得分:0)

对于我来说,我可以通过-

解决
  1. 首先,如果应用程序正在模拟器中运行,则将其关闭。
  2. 然后在 Android studio 终端中运行命令gradle --stop
  3. 然后清理项目重建项目

答案 26 :(得分:0)

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

答案 27 :(得分:0)

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

答案 28 :(得分:0)

简单的解决方案:

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

答案 29 :(得分:0)

在我的情况下,node.js使用了build文件夹中的某些资源(我的应用程序在reactnative中)。所以我杀死了node.js并解决了。

答案 30 :(得分:0)

对我有用的是关闭Visual Studio代码并再次打开它... 我猜apk是在代码中某处打开的文件夹.... 因此,只要尝试一下,它也可能对您有用

答案 31 :(得分:0)

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

答案 32 :(得分:0)

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

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

/ F修复磁盘上的错误

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

/ X必要时强制首先卸除该卷(表示/ F)(重要)

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

现在重建项目

答案 33 :(得分:0)

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

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

答案 34 :(得分:0)

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

答案 35 :(得分:0)

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

答案 36 :(得分:0)

我遇到了同样的问题,我通过将项目文件夹移动到ext4分区

解决了这个问题

答案 37 :(得分:0)

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

答案 38 :(得分:0)

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

答案 39 :(得分:0)

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

答案 40 :(得分:-1)

从“构建选项”选项卡中遵循以下步骤: 1)清洁项目 2)重建项目 3)制作项目