Tôi đang cố gắng xây dựng lại dự án Android Studio Gradle của mình (chứa phần lớn mã Kotlin), nhưng nó đã bắt đầu ném UnableToDeleteFileException
trong quá trình làm sạch / xây dựng lại:
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
Điều này bắt đầu xảy ra sau khi tôi cố gắng thay đổi cấu trúc gói của dự án. Thật không may, tôi đã làm điều đó bằng cách đổi tên và di chuyển các thư mục nguồn thay vì tái cấu trúc thông qua Android Studio, đó là một ý tưởng tồi.
Tôi đã tìm kiếm một giải pháp cho vấn đề này cả ngày và đây là những điều tôi đã cố gắng vô ích:
- Thực hiện đồng bộ hóa Gradle;
- Cài đặt lại Java JRE và Java SDK;
- Cài đặt lại phiên bản Android Studio mới nhất (1.4);
- Quay trở lại phiên bản AS trước (1.3);
- Vô hiệu hóa bộ đệm AS và khởi động lại;
- Xóa các
gradle
và.gradle
thư mục trong thư mục dự án; - Xóa
.gradle
thư mục trong thư mục người dùng của tôi; - Chạy
gradlew clean
từ thiết bị đầu cuối AS; - Sao chép thủ công các nguồn vào một dự án mới (kỳ lạ là bằng cách nào đó nó vẫn tồn tại trên các dự án ...)
Những điều mà tôi đã cố gắng với một chút thành công, nhưng chỉ để tôi thực hiện thêm một lần nữa và xây dựng lại trước khi lỗi xảy ra lần nữa:
- Đóng AS, xóa thủ công các tệp xây dựng và mở lại;
- Giết
java.exe
quá trình trong khi AS đang chạy (về mặt kỹ thuật có thể được thực hiện mọi lúc, nhưng nó tẻ nhạt và làm chậm quá trình xây dựng)
Vì vậy, có vẻ như việc biên dịch quy trình Java có thể khóa một số tệp xây dựng vì một số lý do, nhưng nó cũng có thể là một cái gì đó để làm với Kotlin. Tôi có một dự án Java Android (trưởng thành hơn) mà tôi đang làm việc, mặc dù tôi không thể tái tạo lỗi này khi làm sạch nó. Nó dường như chỉ xảy ra với dự án Kotlin của tôi.
Cập nhật:
Tôi đã phát hiện ra rằng vấn đề đang được gây ra bởi plugin Android Kotlin. Vấn đề biến mất khi tôi xóa apply plugin: 'kotlin-android'
khỏi build.gradle
tệp của mô-đun và quay lại khi tôi đặt lại nó. Hãy cung cấp bất kỳ cái nhìn sâu sắc về điều này.
Cập nhật 2:
Bản cập nhật cuối cùng không phải là nguyên nhân. Tôi thấy rằng nếu một dự án chứa tệp Kotlin thì việc xây dựng lại và làm sạch không thành công. Nó tiếp tục thất bại, ngay cả khi tất cả các tệp Kotlin bị xóa, cho đến khi quá trình Java nền bị giết, có nghĩa là nó có một số loại khóa trên các tệp xây dựng. Tôi đã gửi một lỗi ở đây với nhiều chi tiết và các bước để tạo lại lỗi: KT-9440