Error: Error de ejecución para la tarea ': aplicación: limpia'. No se puede eliminar el archivo

166

Estoy tratando de reconstruir mi proyecto Android Studio Gradle (que contiene principalmente el código de Kotlin), pero comenzó a lanzarse UnableToDeleteFileExceptiondurante el proceso de limpieza / reconstrucción:

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

Esto comenzó a suceder después de que intenté cambiar la estructura del paquete de mi proyecto. Desafortunadamente, lo hice renombrando y moviendo las carpetas de origen en lugar de refactorizar a través de Android Studio, lo cual fue una mala idea.

He estado buscando una solución a este problema todo el día, y estas son las cosas que he intentado en vano:

  • Haciendo una sincronización Gradle;
  • Reinstalar Java JRE y Java SDK;
  • Reinstalar la última versión de Android Studio (1.4);
  • Volviendo a la versión anterior de AS (1.3);
  • Invalidar el caché AS y reiniciar;
  • Eliminar los directorios gradley .gradleen el directorio del proyecto;
  • Eliminar el .gradledirectorio en mi directorio de usuario;
  • Ejecutando gradlew cleandesde el terminal AS;
  • Copiar manualmente las fuentes a un nuevo proyecto (extraño que de alguna manera persista en los proyectos ...)

Cosas que he intentado con un poco de éxito, pero solo me permiten realizar una limpieza más y reconstruir antes de que vuelva a ocurrir el error:

  • Cerrar AS, eliminar manualmente los archivos de compilación y volver a abrirlo;
  • Matar el java.exeproceso mientras AS se está ejecutando (esto podría hacerse técnicamente cada vez, pero es tedioso y ralentiza el proceso de compilación)

Por lo tanto, parece que compilar el proceso Java puede bloquear los archivos de compilación por alguna razón, pero también podría tener algo que ver con Kotlin. Tengo un proyecto Java Android (más maduro) en el que estoy trabajando, aunque no puedo reproducir este error al limpiarlo. Parece que solo le sucede a mi proyecto Kotlin.

Actualizar:

Descubrí que el problema está siendo causado por el complemento de Android Kotlin. El problema desaparece cuando lo apply plugin: 'kotlin-android'elimino del build.gradlearchivo del módulo y vuelve cuando lo vuelvo a insertar. Siéntase libre de ofrecer cualquier idea sobre esto.

Actualización 2:

La última actualización no es la causa. Descubrí que si un proyecto contiene un archivo Kotlin, la reconstrucción y la limpieza fallan. Continúa fallando, incluso si se eliminan todos los archivos de Kotlin, hasta que se elimine el proceso Java en segundo plano, lo que significa que tiene algún tipo de bloqueo en los archivos de compilación. Envié un error aquí con más detalles y pasos para reproducir el error: KT-9440

Brionia
fuente
3
invalidar caché y reiniciar studio desde el menú de archivo.
Mohammad Tauqir
Ya lo había intentado, pero lo intenté nuevamente por si acaso. Aún así no hubo suerte.
Bryony
Este tipo de problema a menudo se me ocurre. si la primera opción no funcionó, cierre la sesión del sistema y luego inicie el estudio después de iniciar sesión.
Mohammad Tauqir
2
Reinicié mi PC y el problema aún persiste. Gracias por tu ayuda sin embargo.
Bryony

Respuestas:

123

Si está utilizando Android Studio 2.0 Beta, este problema puede aparecer (más probable si está trabajando en el sistema de archivos NTFS) y parece que la "Ejecución instantánea" es la culpable. Busque "Ejecución instantánea" en la configuración y desactive la casilla.

He presentado un problema en el rastreador de errores.

Irfan
fuente
Estoy usando sshfs. Mismo problema aquí. Deshabilitar la ejecución instantánea me funciona.
Canción
2
Sí, DESACTIVAR INSTANT RUN Studio 2.0 beta 7 resolvió esta excepción
Yogesh Seralia
1
Mi Android Studio 2.0 estaba atascado al actualizar un proyecto en particular. Intenté todo y accidentalmente seguí esta respuesta y se resolvió por un problema que era diferente de la pregunta. Estuve atrapado por tanto tiempo. ¡Ojalá pudiera votarte más veces! Gracias
Rachita Nanda
9
Esto funcionó para mí. En caso de que ayude a alguien: para deshabilitar Instant Run en la versión 2.1 de Android Studio, es Archivo -> Configuración -> Compilación, Ejecución, Implementación -> Instant Run y ​​luego desmarca la primera casilla "Habilitar Instant Run ...".
nickandross
1
Estoy usando AS v2.1.3. En mi caso, el cuadro "Ejecución instantánea" ya estaba desmarcado, así que lo verifiqué, lo apliqué, limpié y reconstruí el proyecto (el error seguía allí) y luego lo desmarqué, lo apliqué, limpié y reconstruí el proyecto y el error Se fue.
jose
114

Eliminé todos los procesos de Java TM en el administrador de tareas y me permitió reconstruir

Andres Suarez
fuente
29
+1. Zombie Java proceso fue el problema. Si está en Win 10, abra el Administrador de tareas; busque Java (TM) Platform SE binary; Tarea final.
Un estudiante de Noob el
26
Puedes usar gradle --stoppara detener cualquier demonio atascado como alternativa.
Jayson Minard
1
¿Hay alguna forma automática de matar los procesos? Pierdo mucho tiempo matándolo manualmente en cada limpieza.
AvatarQing
En mi caso, había una Meld abierta (herramienta de comparación y combinación) que bloqueaba la carpeta para limpiarla
Armando
en mi caso no encontré Java TM, así que reinicié las ventanas
Dasser Basyouni
41

Probar archivo -> Invalidar cachés y reiniciar

Esto funciono para mi

Empalagar
fuente
El "Invalidar caché y reiniciar" hace que Android Studio se atasque en Windows 8 PC. Estoy usando Android Studio 2.2.2. Puedo usar esta función en absoluto. ¿Alguien tiene una solución adecuada para esto?
Nithinjith
Archivo -> Invalidar cachés y reiniciar funciona pero lleva tanto tiempo que no está bien. El problema básico de mal funcionamiento de los privilegios de los archivos de Win10 volvió a aparecer para mí al SDK 27 (acepté el mensaje de actualización). Y después de la misma actualización, el AS llora por NDK 15 pero solo hay un NDK14 disponible, establezca el SDK de compilación de gradle de compilación en 26 y no llore. Parece que estamos entre dos generaciones aquí? En Win10 x64 también hay problemas con los emuladores que necesitan borrar los datos para volver a usarlos. ¿Suena como un montón de detalles para arreglar?
Jan Bergström
30

Después de publicar un informe de error en el rastreador de errores de Kotlin, recibí una notificación del problema 61300 en el rastreador de AOSP. Esa parece ser la causa. Como no hay nada que pueda hacer en este momento, marcaré esta pregunta como respondida, y actualizaré la respuesta si se solucionó el error.

Mientras tanto, si está ejecutando Windows, creo que he encontrado una solución. Deberá descargar LockHunter (bajo su propio riesgo, por supuesto), luego agregar lo siguiente al gradle.buildarchivo de su módulo , reemplazando la lockhuntervariable con su ruta a LockHunter.exe:

task clean(type: Exec) {
    ext.lockhunter = '\"C:\\LockHunter.exe\"'
    def buildDir = file(new File("build"))
    commandLine 'cmd', "$lockhunter", '/delete', '/silent', buildDir
}

Esto hace que LockHunter desbloquee y elimine de manera forzada y silenciosa los archivos de compilación cuando se ejecuta la aplicación: tarea limpia.

Brionia
fuente
Resolví el problema de limpieza con esto pero no puedo hacer lo mismo para ejecutar la aplicación. Todavía obtengo el mismo error. Tengo alguna idea; tal vez cambiar la limpieza con otra cosa?
codiac
Error: (21, 0) No se permite declarar una tarea 'limpia' personalizada cuando se usan los complementos estándar del ciclo de vida de Gradle.
Shashwat Gupta
26

Limpie el proyecto desde la Terminal con este comando gradlew clean.

ingrese la descripción de la imagen aquí

Biswajit Karmakar
fuente
2
Al escribir el comando anterior, se inició una descarga, desempaque e instalación, lo que llevó algo de tiempo. Después de eso, esta solución funcionó para mí.
Dale
Esto tardó 11 minutos en completarse, pero parece funcionar. Una puntada a tiempo ahorra nueve. Esta debería ser la respuesta aceptada.
mwieczorek
Estoy en ubuntu, ejecuté el gradlew clean como se indicó anteriormente, pero no funcionó ... :( .command no encontrado.
Abhijit Gujar
1
@AbhijitGujar Deberías probar ./gradlew cleanUbuntu en su lugar. (Ejecutará el gradlewejecutable desde el directorio del proyecto.)
TerraPass
77
./gradlew cleanNo resolvió este problema para mí. Mostró el mismo error nuevamente, es decir, "no se puede eliminar el directorio"
abggcv
12

Eliminar el directorio intermediateses una solución rápida para el problema.

El directorio se reconstruirá cuando se reconstruya el proyecto.

DeaMon1
fuente
1
Intenté eliminar el directorio intermedio, pero Windows me dice que no puedo eliminar el directorio. Extraño.
tronman
Me funcionó en uno de los proyectos pero no en otro :(
abggcv
7

Estaba enfrentando el mismo problema en Android Studio 2.2 preview 1, la solución de @AndresSuarez era correcta, pero por algunas razones no pude encontrar el proceso JAVA TM en mi administrador de tareas. Así que probé la siguiente solución y funcionó:

Abra el símbolo del sistema y escriba TASKKILL /F /IM java.exe. Esto matará todos los procesos de JAVA TM automáticamente. Ahora vuelva a compilar la aplicación nuevamente, funcionará.

Además, puede crear un archivo .bat , agregar el código anterior y ejecutarlo cada vez que se enfrente al problema.

Rohan Kandwal
fuente
5

Tuve este problema en Android Studio 2.3.

Simplemente reinicié Android Studio y luego pude limpiar sin quejas.

Johan Lund
fuente
5

Para mí, esto sucedió debido a un proceso de depuración activo . Entonces, antes de limpiar o reconstruir, asegúrese de eliminar todos los procesos activos. Para concretar el éxito, ejecute Invalidar cachés / reiniciar .

Dmitry Smolyaninov
fuente
4

Tuve el mismo problema y esto funcionó para mí:

  1. cierra Android Studio.
  2. eliminar el directorio intermedio (siempre que Android Studio esté abierto, este directorio no se puede eliminar)
  3. abra Android Studio nuevamente
M. Chavoshi
fuente
4

Resolví con comando:

taskkill /F /IM java.exe

y entonces:

gradle assembleDebug 
Almiar
fuente
3

Resolví este en mi ubuntu así.

  1. Verifique los procesos que se ejecutan en su sistema (Ubuntu) como en el administrador de tareas en Windows.

    Comando de terminal de Ubuntu para enumerar todos los procesos que se ejecutan ----> "gnome-system-monitor"

  2. Termine o finalice los procesos JAVA y ANDROID en la lista.

  3. Nuevamente inicie el estudio y el proyecto de importación.

Funciona para mí sin ningún problema. Espero que esto ayude...

Pensé que este es el problema con el proceso que ya está creado y duplicado.

HariPrasad
fuente
3

Para mí, me ayuda cuando hago Exit Android Studioclic una vez más Clean Project(aparece el mismo error) y luego hago clic Make Project, después de eso, por supuesto, Run 'app'en Android Studio.

y07k2
fuente
3

Encuentre programas que usaron la carpeta app / build / salidas / apk , luego simplemente elimine la carpeta.

Creo que Android Studio tiene que eliminar la carpeta antigua de apk antes de reconstruir.

Asignar
fuente
3

Algunas veces los intermedios crean problemas, así que elimínelos y reconstruya el proyecto

O

simplemente ejecute el comando cmd -> gradlew clean

en la carpeta de tu proyecto en el espacio de trabajo (funciona para mí)

Chetan Joshi
fuente
2

La solución es bastante fácil.

Esta es una de las soluciones que funcionó para mí.

Es posible que se abra la carpeta app / build / salidas / apk de su proyecto .

así que solo cierra esta carpeta y reconstruye tu proyecto. y se resolverá

Mehul
fuente
Sí que estaba teniendo este problema, había un archivo de informe que se guarda en la acumulación / informe / checkstyle.html, cerrando este archivo solucionado mi problema, gracias
tamtom
2

Como se sugiere en el informe de error , descomentando la línea

idea.jars.nocopy=false

en el idea.propertiesarchivo me ha resuelto el problema.

Tenga en cuenta que esto debe hacerse cada vez que se actualiza Android Studio.

Jose gómez
fuente
2

Para mí, el culpable es adb reteniendo el archivo apk ya que lo utilizo para instalar e iniciar la aplicación en mi dispositivo físico a través de la línea de comandos.

Tan simplemente:

Administrador de tareas> Finalizar proceso adb.exe

Y luego el archivo se puede eliminar libremente y el proyecto se puede limpiar

benallansmith
fuente
2

reaccionar desarrolladores nativos

correr

sudo cd android && ./gradlew clean

y si quieres liberar apk

sudo cd android && ./gradlew assembleRelease

Espero que ayude a alguien

Muhammad Ashfaq
fuente
1

Si está probando con un backend local (servlet de Java en el motor de la aplicación local de Google), el proceso en ejecución bloquea algunos archivos. Por lo tanto, no puede vivir la implementación. Entonces, en este caso, puede resolver esto deteniendo el backend local antes de comenzar a limpiar o construir. Encontrará la opción en "Ejecutar -> Detener backend".

Tino
fuente
1

En Android Studio 3.0, tuve el mismo problema. Esto lo solucionó:

  1. Cerrar estudio
  2. Eliminar projectRoot / build / y projectRoot / app / build /
  3. Reiniciar Studio
Joseph Bani
fuente
1

Tuve el mismo problema después de mover mi proyecto de D: a G: unidad, pero la comprobación del disco resolvió mi problema

Solía chkdsk / f / r / x G: ** aquí se utilizaron algunos interruptores de línea de comandos: **

/ F corrige errores en el disco

/ R Localiza sectores defectuosos y recupera información legible (implica / F)

/ X Obliga al volumen a desmontarse primero si es necesario (implica / F) (importante)

Nota: / X es importante porque desmontará la unidad y puede eliminar manualmente el directorio de compilación de su proyecto,

ahora reconstruye el proyecto

Sumanpal Singh Saggu
fuente
Esto funcionó. ¡Gracias! :) Pero tomó casi 5 horas. hora de completar.
Rohit Sharma
1

Acabo de resolver este problema exacto por mí mismo.

El problema era que alguien más había creado el archivo, por lo que, aunque tengo derechos de administrador en la computadora, no pude realizar cambios en el archivo o los archivos. Debe ir a las propiedades del archivo o carpeta y cambiar la propiedad o agregar propiedad. Esta página web explica bien, paso a paso, lo que debe hacer.

Una vez que hice lo anterior, encontré el archivo en el explorador de archivos y lo extraje manualmente. No creo que sea necesario en el proyecto de estudio de Android si intentaba eliminarlo de todos modos.

Adam Higgins
fuente
1

Aparentemente, otra aplicación que puede usar los recursos es Kotlin REPL de Android Studio. Cerré eso, y luego pude construir de nuevo sin problemas.

usuario2061182
fuente
0

Este problema se me apareció en el canal estable de Android Studio 2.0 y la solución se debió a un problema que sucedió al actualizar mi estudio de Android. Lo resolví instalando un nuevo estudio de Android. después de eliminar todos los archivos antiguos para la instalación anterior. y para mantener la muy buena característica de Instant Run

Mohamed
fuente
0

Si todavía tiene problemas, actualice a la última versión de Android Studio (su 2.1 a partir de ahora), podría ser un error con la versión anterior de Android Studio. Está resuelto para mí ahora.

Ishant Sagar
fuente
Ocurre en 2.2 vista previa 1 para mí, así que no creo que esté solucionado.
Rohan Kandwal
0

Limpiar el proyecto en el estudio de Android y volver a ejecutarlo solucionó el problema. También se puede hacer "Make Project".

sofs1
fuente
0

Tuve el mismo problema y lo resolví moviendo la carpeta del proyecto a la partición ext4

Ahmed Esameddeen
fuente
Sí, he leído en otra parte que el sistema Android Studio / gradle / React Native / packager / watchman tiene problemas (por alguna razón) en los sistemas de archivos NTFS.
Venryx
0

Tuve el mismo error, intenté varias formas, pero la solución funcionó para mí fue eliminar las carpetas de compilación de los directorios / android y / android / app.

Run react-native run-androidfuncionó para mí.

Eltaf
fuente
0

Lo resolví buscando globalmente el directorio que falta en el proyecto. luego elimine cualquier archivo que contenga esa palabra clave. se puede limpiar con éxito después de eliminar todos los directorios buildy .externalNativeBuildmanualmente.

wdanxna
fuente