我正在尝试重建我的 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
and .gradle
项目目录中的目录;
- 删除
.gradle
我的用户目录中的目录;
- Running
gradlew clean
从 AS 终端;
- 手动将源代码复制到新项目(奇怪的是它以某种方式在项目中持续存在......)
我尝试过的事情取得了一些成功,但只让我在错误再次发生之前再执行一次清理和重建:
- 关闭AS,手动删除构建文件,重新打开;
- 杀死
java.exe
AS 运行时的过程(从技术上讲,这可以每次都完成,但它很乏味并且会减慢构建过程)
因此,编译 Java 过程可能会出于某种原因对构建文件加锁,但这也可能与 Kotlin 有关。我正在开发一个(更成熟的)Java Android 项目,尽管在清理它时我无法重现此错误。这似乎只发生在我的 Kotlin 项目中。
Update:
我发现问题是由 Kotlin Android 插件引起的。当我删除时问题就消失了apply plugin: 'kotlin-android'
从模块的build.gradle
文件并在我重新插入时返回。请随意提供对此的任何见解。
更新2:
上次更新不是原因。我发现如果一个项目包含 Kotlin 文件,那么重建和清理就会失败。即使所有 Kotlin 文件都被删除,它仍然会失败,直到后台 Java 进程被终止,这意味着它对构建文件有某种锁定。我在这里提交了一个错误,其中包含更多详细信息和重现该错误的步骤:KT-9440 https://youtrack.jetbrains.com/issue/KT-9440
我在任务管理器中杀死了所有 java TM 进程,它让我可以重建
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)