错误:执行任务':app:clean'失败。 无法删除文件
我试图重build我的Android Studio Gradle项目(主要包含Kotlin代码),但是在清理/重build过程中,它开始抛出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);
- 使AScaching无效并重新启动;
- 删除项目目录中的
gradle
和.gradle
目录; - 删除我的用户目录中的
.gradle
目录; - 从ASterminal运行
gradlew clean
; - 手动将源代码复制到一个新项目(奇怪的是,它在某些项目中持续存在)
我已经尝试了一些成功的事情,但只能让我再次执行一次清理并重新生成错误:
- closuresAS,手动删除构build文件并再次打开它;
- 当AS正在运行时,杀死
java.exe
进程(这在技术上可以每次都完成,但是这很繁琐,并且会降低构build过程的速度)
所以看起来,编译Java进程可能会因为某种原因而对构build文件进行locking,但这也可能与Kotlin有关。 我有一个(更成熟的)我正在处理的Java Android项目,虽然我不能在清理时重现此错误。 这似乎只发生在我的Kotlin项目上。
有任何想法吗?
提前致谢。
更新:
我发现问题是由Kotlin Android插件引起的。 当我从模块的build.gradle
文件中删除apply plugin: 'kotlin-android'
时,问题就消失了,当我重新插入时,它会回来。 随时提供任何洞察到这一点。
更新2:
最后的更新不是原因。 我发现如果一个项目包含一个Kotlin文件,那么重build和清理失败。 即使所有Kotlin文件都被删除,它仍然会失败,直到后台Java进程被终止,这意味着它在构build文件上有某种locking。 我在这里提交了一个bug,更多的细节和步骤来重现错误: KT-9440
如果您使用的是Android Studio 2.0 Beta,则可能会出现此问题(如果您正在使用NTFS文件系统,则可能会出现此问题),并且“即时运行”似乎是罪魁祸首。 在设置中search“即时运行”并取消选中该框。
我已经提交了一个bug跟踪器的问题 。
我杀死了任务pipe理器中的所有java TM进程,并让我重build
在我向Kotlin错误跟踪器发布了一个错误报告之后,我收到了AOSP跟踪器发出的61300问题通知。 这似乎是原因。 由于目前我无能为力,因此我将这个问题标记为已回答,如果问题得到解决,我会更新答案。
同时,如果你正在运行Windows,我相信我find了一个解决方法。 您需要下载LockHunter (当然,风险自负),然后将以下内容添加到您的模块的gradle.build
文件中,将lockhunter
variablesreplace为lockhunter
的path:
task clean(type: Exec) { ext.lockhunter = '\"C:\\LockHunter.exe\"' def buildDir = file(new File("build")) commandLine 'cmd', "$lockhunter", '/delete', '/silent', buildDir }
这会导致LockHunter在应用程序:clean任务运行时强制静默地解锁并删除构build文件。
尝试文件 – >使caching失效并重新启动
这对我有效
使用这个命令“gradlew clean”从terminal清理项目。
删除目录intermediates
可以快速解决问题。
重build项目时将重build该目录。
对于我来说,当我Exit Android Studio
时会有所帮助,再单击一次Clean Project
(出现同样的错误),然后点击Make Project
– 然后在Android Studio中Run 'app'
button。
find使用app / build / outputs / apk文件夹的程序,然后删除文件夹。
我认为Android Studio必须在重build之前删除旧的apk文件夹。
有时中间产生的问题,所以删除它和重build项目
要么
只需运行cmd命令 – > gradlew clean即可
在你的项目文件夹中的工作空间(其工作对我来说)
解决scheme很简单。
这是为我工作的解决scheme之一。
你的项目的app / build / outputs / apk文件夹可能被打开。
所以只要closures这个文件夹并重build你的项目。 这将得到解决。
我在Android Studio 2.2预览版1上遇到同样的问题,@AndresSuarez的解决scheme是正确的,但由于某些原因,我无法在任务pipe理器中findJAVA TM进程。 所以我试了下面的解决scheme,它的工作原理 –
打开命令提示符并键入TASKKILL /F /IM java.exe
。 这将自动终止所有的JAVA TM进程。 现在重新编译应用程序,它将工作。
另外,您可以创build一个.bat文件,在其中添加上面的代码,并在每次遇到问题时运行它。
如错误报告中所build议的 ,取消注释该行
idea.jars.nocopy=false
在idea.properties
文件已经解决了我的问题。
请注意,这需要每次Android Studio更新时完成。
我在我的Ubuntu下解决了这个问题。
-
检查系统中运行的进程(Ubuntu),如在Windows任务pipe理器中。
Ubuntuterminal命令列出所有正在运行的进程—->“gnome-system-monitor”
-
终止或结束列表中的JAVA和ANDROID进程。
- 再次启动工作室和导入项目。
它对我的作品没有任何问题。 希望这可以帮助…
我认为这是已经创build和重复的过程的问题。
如果您正在使用本地后端(本地Google应用程序引擎上的java servlet)进行testing,则正在运行的进程会阻止某些文件。 所以你不能够部署。 所以在这种情况下,您可以通过在开始清理或构build之前停止本地后端来解决此问题。 您可以在“运行 – >停止后端”下find该选项。
我在Android Studio 2.3中遇到了这个问题。
我只是重新启动Android Studio,之后我可以清理没有投诉。
这个问题出现在我的android studio 2.0稳定的渠道和解决scheme是由于更新我的android工作室时,我通过安装一个新的android工作室解决了这个问题。 删除旧的安装的所有旧文件后。 并保持即时运行的非常好的function
如果您仍然遇到问题,请升级到最新版本的Android Studio(截至目前的2.1版本),可能是旧版Android Studio的一个缺陷。 现在解决了我。
在Android studio中清理项目并再次运行解决了这个问题。 也可以做“做项目”。
我有同样的问题,我解决了通过移动项目文件夹到ext4分区
我有同样的错误,尝试了多种方式,但解决scheme为我工作是从/ android和/ android / app目录中删除生成文件夹。
运行react-native run-android
为我工作。
我通过全局search项目中缺less的目录来解决这个问题。 然后删除包含该关键字的任何文件。 在我手动删除所有build
和.externalNativeBuild
目录后,它可以成功清理。
我正在使用Android Studio 3.0 Beta 7.清理项目,使caching失效,重新开始工作室没有工作,但更新Kotlin版本到1.1.51,并重新开始工作室解决了这个问题对我来说。
我有同样的问题,这对我工作:
- closuresAndroid Studio。
- 删除中间目录(只要Android Studio打开,这个目录不能被删除)
- 再次打开Android Studio
- Android资源未findexception?
- 如何在Android中创build文件?
- Android的AsyncTaskLoader不启动loadInBackground?
- 有没有可能在android gradle中将git存储库声明为依赖项?
- 图片大小(drawable-hdpi / ldpi / mdpi / xhdpi)
- Android – 我的应用程序中使用的音量button
- java.lang.IllegalArgumentException:包含一个path分隔符
- Windows 8.1设备pipe理器现在显示了Google Nexus 7的ACER设备,而不是Android设备
- 服务,asynchronous任务和线程之间的区别?