Linux - Gradle 无法删除临时文件并且构建失败

Linux - Gradle can't delete temporary files and build fails

当我执行 $ gradle :android:clean$ gradle :android:assembleDebug 我得到

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':android:mergeDebugResources'.
> Error: Could not delete path '/media/naxa/<NTFS Partition>/<Project Path>/android/build/intermediates/incremental/mergeDebugResources/merged.dir/values-sk'.

我想提一下,该项目位于 NTFS 分区上。

我找到了一个解决方法,我正在使用 --continue 选项来忽略构建失败。但我想知道为什么无法删除该文件。是不是被什么东西挡住了?

这是一个已知问题,已在 Studio 2.2 预览版 3 中修复。您可以在此 thread 中找到更多信息。


如果您在 Windows 上看到了问题,请关注评论 #64:

有一个工具可用于获取打开文件的代码的堆栈跟踪,该文件仍由进程持有。这是我用来生成部分修复的堆栈跟踪的工具。

http://file-leak-detector.kohsuke.org/

您需要 运行 工作室与 java 经纪人。


如果您使用的是 Linux 并且您使用的是 NTFS,请在 bin/idea.properties 中取消对以下 属性 的注释:

#---------------------------------------------------------------------
# IDEA can copy library .jar files to prevent their locking.
# By default this behavior is enabled on Windows and disabled on other platforms.
# Uncomment this property to override.
#---------------------------------------------------------------------
# idea.jars.nocopy=false

如果您使用 2.2 Beta 或更高版本继续看到此问题,请提交新错误。