错误:执行任务':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重构,这是一个坏主意。

我一直在寻找这个问题的解决办法,而这些都是我试图无效的东西:

  • 做一个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插件引起的。 当我从模块的build.gradle文件中删除apply plugin: 'kotlin-android'时,问题就消失了,当我重新插入时,它会回来。 随时提供任何洞察到这一点。

更新2:

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

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

我已经提交了一个bug跟踪器的问题 。

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

在我向Kotlin错误跟踪器发布了一个错误报告之后,在AOSP跟踪器上我收到了第61300号通知。 这似乎是原因。 由于目前我无能为力,因此我将这个问题标记为已回答,如果问题得到解决,我会更新答案。

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

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

这会导致LockHunter在应用程序:clean任务运行时强制静默解锁并删除构建文件。

尝试文件 – >使缓存失效并重新启动

这对我有效

使用这个命令“gradlew clean”从终端清理项目。

在这里输入图像描述

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

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

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

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

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

有时中间产生的问题,所以删除它和重建项目

要么

只需运行cmd命令 – > gradlew clean即可

在你的项目文件夹中的工作空间(其工作对我来说)

解决方案很简单。

这是为我工作的解决方案之一。

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

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

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

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

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

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

 idea.jars.nocopy=false 

idea.properties文件已经解决了我的问题。

请注意,这需要每次Android Studio更新时完成。

我在我的Ubuntu下解决了这个问题。

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

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

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

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

它对我的作品没有任何问题。 希望这可以帮助…

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

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

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

我只是重新启动Android Studio,之后我可以清理没有投诉。

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

如果您仍然遇到问题,请升级到最新版本的Android Studio(截至目前的2.1版本),可能是旧版Android Studio的一个缺陷。 现在解决了我。

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

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

我有同样的错误,尝试了多种方式,但解决方案为我工作是从/ android和/ android / app目录中删除生成文件夹。

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

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

我正在使用Android Studio 3.0 Beta 7.清理项目,使缓存失效,重新开始工作室没有工作,但更新Kotlin版本到1.1.51和重新工作室解决了这个问题对我来说。