Error:Execution failed for task ':app:clean'. > Unable to delete directory 终极解决方案

<span style="font-size:12px;">Information:Gradle tasks [:app:clean, :app:generateDebugSources, :app:generateDebugAndroidTestSources, :app:mockableAndroidJar, :app:prepareDebugUnitTestDependencies, :app:assembleDebug]
:app:clean FAILED
Error:Execution failed for task ':app:clean'.
> Unable to delete directory: E:\ZK_LiCai\app\build
Information:BUILD FAILED
Information:Total time: 2.61 secs
Information:1 error
Information:0 warnings
Information:See complete output in console</span>

这个Bug我在网上找了很多解决办法都不尽完美,我多方研究后总结了一个完美的解决方案,希望对各位有所帮助:


在网上找的最多的一种方案是找到:E:ZK_LiCai\app\build目录,将其删除。(如果删除时有权限问题可以先将Android Studio关闭,还不行的话就把Java 虚拟机也关掉)然后重启AS。

这种方案这样操作是可以运行的,但我如果将项目clean之后,Android Studio会重新创建build及其子文件,然后又会出现之上Bug,什么鬼!!!难道每次都让我去删一次,这对于项目开发来说肯定不能忍!

所以我们思考在项目每次编译的时候去删除这个文件,在app Module的build.gradle中添加一段代码:

 task clean(type: Delete) {
        delete rootProject.buildDir
    }
 
  
  
 

原理解释:

task clean声明了一个任务,任务名叫clean(也可以改为其它),任务类型是Delete(也可以是Copy),就是每当修改settings.gradle文件后点击同步,

就会删除rootProject.buildDir下的文件(实际上我看到的效果是清除了External Libraries里的包,然后又添加了一次)。

补充问题解决:

不过在在添加完这段代码之后又出现了一个新Bug

Error:Execution failed for task ':app:transformClassesWithInstantRunSlicerForDebug'.
> java.io.IOException: Failed to delete E:\ZK_LiCai\app\build\intermediates\instant-run-support\debug\restart-changes.txt
这就明显是搞事情了,Google后也没有好的解决办法,在stack overflow上有人说: clean Project 或者Rebuild Project 即可

试了之后发现的确运行没有问题了,不过总感觉这样不靠谱,各位如果有好的解决办法请在评论区留言给我


更新

没想到时隔多年,这个问题又重现了,而且使用之前的方法并没有解决。现根据个人经验提供第二种办法:

进入File-Setting-Build,Execution,Deployment-Instant Run 

取消勾选 Restart activity on code changes 

然后clean.




 


猜你喜欢

转载自blog.csdn.net/ding_gc/article/details/52702576