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


166

我正在尝试重建我的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,手动删除构建文件,然后再次打开;
  • 查杀java.exe过程,而AS运行(这可以在技术上做到每一次,但它的繁琐,减缓构建过程)

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

更新:

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

更新2:

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


3
使缓存无效并从文件菜单重新启动Studio。
Mohammad Tauqir

我已经尝试过了,但是为了以防万一,我再次尝试了。仍然没有运气。
Bryony 2015年

我经常会遇到这种问题。如果第一个选项没有工作,然后从系统中注销,然后在登录后启动的工作室。
穆罕默德Tauqir

2
重新启动我的电脑,问题仍然存在。谢谢您的帮助。
Bryony

Answers:


123

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

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


我正在使用sshfs。这里同样的问题。禁用即时运行对我有效。
2016年

2
是的,禁用即时运行Studio 2.0 beta 7已解决了此异常
Yogesh Seralia

1
我的Android Studio 2.0被困在刷新特定项目上。我尝试了一切,意外地遵循了这个答案,解决了与问题不同的问题。我被困了很久。希望我能再投票给您!谢谢
Rachita Nanda

9
这对我有用。如果它对某人有帮助:在Android Studio版本2.1中禁用“即时运行”,即文件->设置->构建,执行,部署->即时运行,然后取消选中第一个框“启用即时运行...”。
nickandross '16

1
我正在使用AS v2.1.3。在我的情况下,“即时运行”框已被取消选中,因此我选中了它,然后将其应用,清理并重新构建项目(错误仍然存​​在),然后取消选中它,将其应用,清理并重新构建项目和错误失去了。
jose

114

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


29
+1。Zombie Java进程就是问题所在。如果您使用的是Win 10,请打开“任务管理器”。寻找Java(TM)Platform SE二进制文件;结束任务。
某位Noob学生

25
您可以使用gradle --stop停止任何卡住的守护程序作为替代方法。
杰森·米纳德

1
是否有一些自动的方法来杀死进程。我每次清理都将其手动杀死,浪费了很多时间。
AvatarQing '17

就我而言,有一个打开的Meld(比较和合并工具)正在锁定文件夹以进行清理
Armando

就我而言,我没有找到Java TM,所以我重新启动了Windows
Dasser Basyouni

41

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

这对我有用


“无效的缓存并重新启动”使Android Studio卡在Window 8 PC中。我正在使用Android Studio 2.2.2。我完全可以使用此功能。任何人都有合适的解决方案吗?
Nithinjith '16

File-> Invalidate Caches and Restart可以工作,但是要花费很多时间,这是不正常的。Win10文件特权的基本问题再次出现,因为我更新到SDK 27(我接受了更新消息)。在相同的更新之后,AS会为NDK 15发出呼叫,但只有NDK14可用,请将build gradle compile SDK设置为26,并且不会哭。看起来我们介于两代人之间?在Win10 x64中,仿真器也存在问题,需要擦除数据才能重新使用。听起来有很多需要修复的细节吗?
JanBergström'18年

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任务运行时强行以静默方式解锁和删除构建文件。


我用这个解决了干净的问题,但是无法为运行应用程序做同样的事情。仍然出现相同的错误。有任何想法;也许用其他东西改变清洁?
codiac'6

错误:(21,0)不允许在使用标准Gradle生命周期插件时声明自定义“干净”任务。
Shashwat Gupta

26

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

在此处输入图片说明


2
输入上面的命令开始下载,解压缩和安装,这花费了一些时间。之后,此解决方案对我有用。
戴尔

完成此过程花了11分钟,但似乎可行。及时缝一针可节省九分钟。这应该是公认的答案。
mwieczorek,2016年

我在Ubuntu我跑了gradlew干净上面的指示,但没有工作.. :( .command没有找到。
作者Abhijit Gujar

1
@AbhijitGujar您应该改用./gradlew cleanUbuntu。(它将gradlew从项目目录运行可执行文件。)
TerraPass,2016年

7
./gradlew clean没有为我解决这个问题。它再次显示相同的错误,即“无法删除目录”
abggcv

12

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

重建项目时将重建目录。


1
我试图删除中间目录,但是Windows告诉我无法删除目录。奇怪的。
特曼2016年

它在一个项目上对我
有用,

7

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

打开命令提示符,然后键入TASKKILL /F /IM java.exe。这将自动杀死所有JAVA TM进程。现在再次重新编译该应用程序,它将可以正常工作。

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


5

我在Android Studio 2.3中遇到此问题。

我只是重新启动了Android Studio,然后我可以进行清理而不会产生任何投诉。



4

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

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

4

我用命令解决了:

taskkill /F /IM java.exe

然后:

gradle assembleDebug 

3

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

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

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

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

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

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

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


3

对我来说,这对我有帮助,我再Exit Android Studio单击一次Clean Project(它会出现相同的错误),然后再次单击Make Project- Run 'app'在Android Studio中单击“ 确定” 。


3

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

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


3

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

要么

只需运行cmd命令-> gradlew clean

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


2

解决方案很容易。

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

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

因此,只需关闭此文件夹并重建项目即可。它将解决。


是的,我遇到了这个问题,有一个报告文件保存在build / report / checkstyle.html中,关闭此文件解决了我的问题,谢谢
tamtom

2

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

idea.jars.nocopy=false

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

请注意,每次Android Studio更新时都需要执行此操作。


2

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

如此简单:

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

然后可以免费删除文件,并且可以清除项目


2

回应本地开发者

sudo cd android && ./gradlew clean

如果你想发布apk

sudo cd android && ./gradlew assembleRelease

希望对别人有帮助


1

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


1

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

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

1

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

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

/ F修复磁盘上的错误

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

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

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

现在重建项目


这工作了。谢谢!:)但是花了将近5个小时。时间完成。
Rohit Sharma

1

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

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

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


1

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


0

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



0

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



0

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

react-native run-android对我有用。


0

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.