我正在尝试重建我的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
和.gradle
目录;.gradle
目录;gradlew clean
;我尝试了一些有点成功的事情,但只让我再次执行一次干净并重新构建错误之前:
java.exe
进程(这在技术上每次都可以完成,但这很乏味并且减慢了构建过程)所以似乎编译Java进程可能由于某种原因锁定构建文件,但它也可能与Kotlin有关。我有一个(更成熟的)Java Android项目,我正在努力,虽然我在清理时无法重现此错误。这似乎只发生在我的Kotlin项目上。
我发现问题是由Kotlin Android插件引起的。当我从模块的apply plugin: 'kotlin-android'
文件中删除build.gradle
并在重新插入时返回时,问题就消失了。随意提供任何洞察力。
最后一次更新不是原因。我发现如果一个项目包含一个Kotlin文件,那么重建和清理就会失败。它继续失败,即使所有Kotlin文件都被删除,直到后台Java进程被杀死,这意味着它对构建文件有某种锁定。我在这里提交了一个错误,其中包含更多细节和重现错误的步骤:KT-9440
如果您使用的是Android Studio 2.0 Beta,则可能会出现此问题(如果您正在使用NTFS文件系统,则更有可能),并且看起来“即时运行”是罪魁祸首。在设置中搜索“即时运行”并取消选中该框。
我已经在bug追踪器上提交了issue。
找到使用app / build / outputs / apk文件夹的程序,然后只删除文件夹。
我认为Android Studio必须在重建之前删除旧的apk文件夹。
有时候中间产生问题所以删除它和重建项目
要么
只需运行cmd命令 - > gradlew clean
在工作空间的项目文件夹中(对我而言)
我有同样的问题,这对我有用:
对我来说,这是因为一个活跃的调试过程。因此,在清理或重建之前,请确保终止所有活动进程。确定成功执行Invalidate Cashes / Restart。
我在我的ubuntu中解决了这个问题。
它对我没有任何问题。希望这可以帮助...
我认为这是已经创建和重复的进程的问题。
解决方案非常简单。
这是对我有用的解决方案之一。
您的项目的app / build / outputs / apk文件夹可能已打开。
所以只需关闭此文件夹并重建您的项目。它将被解决。
作为suggested in the bug report,取消注释线
idea.jars.nocopy=false
在idea.properties
文件中为我解决了这个问题。
请注意,每次Android Studio更新时都需要执行此操作。
对我来说,罪魁祸首是adb抓住apk文件,因为我利用它通过命令行在我的物理设备上安装和启动应用程序。
简单地说:
任务管理器>结束进程adb.exe
然后可以自由删除文件并清理项目
如果您使用本地后端(本地google应用引擎上的java servlet)进行测试,则正在运行的进程会阻止某些文件。所以你无法实时部署。因此,在这种情况下,您可以通过在开始清理或构建之前停止本地后端来解决此问题。您可以在“运行 - >停止后端”下找到该选项。
我有同样的错误,尝试了多种方法,但解决方案对我来说是从/ android和/ android / app目录中删除构建文件夹。
运行react-native run-android
为我工作。
我杀死了任务管理器中的所有java TM进程,它让我重建
在Android Studio 3.0中,我遇到了同样的问题。这解决了它:
我用命令解决了:
taskkill /F /IM java.exe
然后:
gradle assembleDebug
这个问题在android studio 2.0稳定通道中出现,解决方案是由于在更新我的android工作室时发生的问题我通过安装一个新的android工作室解决了这个问题。删除旧安装的所有旧文件后。并保持Instant Run的非常好的功能
如果您仍然遇到问题,请更新到最新版本的Android Studio(截至目前为2.1),可能是旧版Android Studio的错误。它现在解决了我。
在Android工作室中清理项目并再次运行修复了该问题。也可以做“制作项目”。
我有同样的问题,我通过将项目文件夹移动到ext4分区解决了它
我通过全局搜索项目中的缺失目录来解决它。然后删除包含该关键字的任何文件。我手动删除所有build
和.externalNativeBuild
目录后,它可以成功清理。
我正在使用Android Studio 3.0 Beta 7.清洁项目,无效缓存,重启工作室不起作用但更新Kotlin版本到1.1.51并重新启动工作室为我解决了这个问题。
将我的项目从D:移动到G:驱动器后,我遇到了同样的问题,但磁盘检查解决了我的问题
我使用了chkdsk / f / r / x G:**这里使用了一些命令行开关:**
/ F修复磁盘上的错误
/ R定位坏扇区并恢复可读信息(暗示/ F)
/ X如果需要,强制首先卸载卷(暗示/ F)(重要)
注意:/ X很重要,因为它将卸载驱动器,您可以手动删除项目的构建目录,
现在重建项目
我的解决方案非常简单(如果您使用的是Windows)。 1-关闭Android Studio。 2-以管理员身份运行Android Studio。 3-就是这样。
尝试文件 - >使高速缓存无效并重新启动
这对我有用
对我有用的事情是关闭视觉工作室代码并再次打开它...我猜apk文件夹是在代码中打开的......所以试试它也可能对你有用
在我向Kotlin bug跟踪器发布了一个错误报告后,我收到了关于AOSP跟踪器的Issue 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任务运行时强制并静默地解锁和删除构建文件。
删除目录intermediates
是一个快速解决问题的方法。
重建项目时将重建该目录。
我在Android Studio 2.3中遇到了这个问题。
我只是重新启动了Android Studio,之后我可以在没有投诉的情况下进行清理。
我在Android Studio 2.2预览版1中遇到了同样的问题,@ AndresSuarez的解决方案是正确的但由于某些原因我在我的任务管理器中找不到JAVA TM进程。所以我尝试了以下解决方案并且它有效 -
打开命令提示符并键入TASKKILL /F /IM java.exe
。这将自动终止所有JAVA TM进程。现在再次重新编译应用程序,它将工作。
此外,您可以创建.bat文件,在其中添加上述代码并在每次遇到问题时运行它。
对我来说,它有助于我Exit Android Studio
,再次单击Clean Project
(它出现相同的错误),然后单击Make Project
- 当然在Android Studio中的Run 'app'
按钮之后。