La compilación de Android Studio falla y la "Tarea" no se encuentra en el proyecto raíz "MyProject". "

89

Recibo este error cuando intento construir mi proyecto después de cambiar la computadora portátil y actualizar a la versión 0.8.2 de Android Studio.

FALLO: la compilación falló con una excepción.

  • Qué salió mal: Tarea '' no encontrada en el proyecto raíz 'MyProject'.

  • Prueba: Ejecuta tareas de Gradle para obtener una lista de las tareas disponibles. Ejecute con la opción --stacktrace para obtener el seguimiento de la pila. Ejecute con la opción --info o --debug para obtener más resultados de registro.

CONSTRUCCIÓN FALLIDA

Aquí están mis archivos de Gradle:

Configuración de nivel superior.

include ':MyProject'

build.gradle en MyProject:

apply plugin: 'com.android.application'

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath "com.android.tools.build:gradle:0.12.+"
    }
}
repositories {
    mavenCentral()
}

android {
    compileSdkVersion 20
    buildToolsVersion "20"

    defaultConfig {
        minSdkVersion 14
        targetSdkVersion 20
    }
}

dependencies {
    compile 'de.timroes.android:EnhancedListView:0.3.0@aar'
    compile 'com.nineoldandroids:library:2.4.0'
}

Build.gradle de nivel superior está vacío

TomRichardson
fuente
¿Qué comando exacto estás ejecutando?
Opal
@Opal Solo estoy tratando de limpiar y reconstruir
TomRichardson
Bien ok. ¿Qué comando ejecutas?
Opal
8
Intente cerrar y volver a abrir Android Studio. Funcionó para mí.
petter
2
¿No se seleccionó ninguna respuesta entre estas muchas? Al menos publique su respuesta entonces, eso ayudará a otros también.
kAmol

Respuestas:

63

Aunque tardó en responder, esta es una pregunta difícil para Google (las comillas simples) y no está claro qué está sucediendo. Todavía no tengo la reputación de comentar o pedir alcance (o publicar 3 enlaces), por lo que esta respuesta puede ser un poco tediosa.

Para responder rápidamente, es posible que tenga varios complementos de Gradle en su proyecto.

Sincronizar complementos y envoltorios de Gradle

Mi problema parecía comenzar con un archivo IML dañado. Android Studio (entre el cierre y la reapertura de un proyecto) comenzó a quejarse de que un IML se había ido (no lo estaba) y se debía eliminar un módulo, lo cual rechacé. Persistió, actualicé a AS 0.8.7 (canal canario) y me quedé atascado en el problema OP (Tarea '' no encontrada en el proyecto raíz). Esto bloqueó completamente las compilaciones, así que tuve que profundizar en Gradle.

Mis pasos de reparación en OSX (ajuste para Windows):

  1. Actualice Android Studio a 0.8.7
    • Preferencias | Actualizaciones | Cambie "Canal Beta" a "Canal Canario", luego verifique ahora.
    • Es posible que pueda omitir esto.
  2. Verificó el contenedor de Gradle (actualmente 1.12.2; no intente usar 2.0 en este momento).

    • Suponiendo que no necesita una versión en particular, use la última distribución compatible

      $ vi ~/project/gradle-wrapper.properties ... distributionUrl=http\://services.gradle.org/distributions/gradle-1.12-all.zip

    • Esto se puede configurar en Android Studio en Preferencias | Gradle (pero 0.8.7 me estaba dando errores de 'ubicación no válida').

    • El 'contenedor' es solo una copia de Gradle para cada proyecto de Android Studio. Te permite tener Gradle 2 en tu sistema operativo y diferentes versiones en tus proyectos. Los documentos para desarrolladores de Android lo explican aquí .
    • Luego, ajusta tus archivos build.gradle para el complemento . La versión del complemento de Gradle debe ser compatible con la versión de distribución / envoltura para todo el proyecto. Como la documentación de Herramientas (tools.android.com/tech-docs/new-build-system/user-guide#TOC-Requirements) está un poco desactualizada, puede configurar la versión del complemento demasiado baja (como 0.8.0) y Android Studio arrojará un error con el rango aceptable para el contenedor.

Por ejemplo, en build.gradle, tiene este complemento:

dependencies {
    classpath "com.android.tools.build:gradle:0.12.+"
}

Puede intentar cambiarlo a la versión exacta, así:

dependencies {
    classpath "com.android.tools.build:gradle:0.12.2"
}

y (después de registrar la versión desde la que está cambiando en cada caso) verificar que cada archivo build.gradle en su proyecto obtenga la misma versión del complemento. Mantener el "+" debería funcionar (para 0.12.0, 0.12.1, 0.12.2, etc.), pero mi compilación tuvo éxito cuando actualicé la biblioteca Volley de Google (originalmente gradle: 0.8. +) Y mi proyecto principal (originalmente 0.12. +) a la versión fija: gradle: 0.12.2.

Otros controles

  1. Asegúrese de no tener dos módulos de aplicación de Android en el mismo proyecto

    • Esto puede interactuar con la solución final (diferentes versiones de Gradle, arriba) y causar

      UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dex.DexException: Multiple dex files define (various classes)

    • Para comprobarlo, construya | Make Project no debería abrir una ventana que le pregunte qué aplicación desea hacer.

  2. Invalidar sus cachés
    • Archivo | Invalidar cachés / reiniciar (stackoverflow.com/a/19223269/513413)
  3. Si el paso 2 no funciona, elimine ~ / .gradle / (www.wuttech.com/index.php/tag/groovy-lang-closure/)
    • Salir de Android Studio
    • $ rm -rf ~ / .gradle /
    • Inicie Android Studio, luego sincronice:
      • Herramientas Android | Sincronizar proyecto con archivos Gradle
    • Repite esta secuencia completa (salir ... sincronizar) varias veces antes de rendirte.
  4. Limpiar el proyecto
    • Construir | Proyecto limpio

Si ves esto ...

En mis compilaciones recientes, seguí viendo fallas horribles (páginas de excepciones) pero en segundos los mensajes se borraban, la compilación se realizó correctamente y la aplicación se implementó. Como nunca pude explicarlo y la aplicación funcionó, nunca noté que tenía dos complementos de Gradle en mi proyecto. Así que creo que los complementos de Gradle lucharon entre sí; uno se estrelló, el otro perdió su estado y reportó el error.

Si tiene tiempo, el video de 1 hora "A Gentle Introduction to Gradle" (www.youtube.com/watch?v=OFUEb7pLLXw) realmente me ayudó a abordar los archivos de compilación, tareas, decisiones de compilación, etc. de Gradle.

Descargo de responsabilidad

Estoy aprendiendo toda esta pila, en un sistema operativo extranjero, después de trabajar en una carrera diferente ... todo al mismo tiempo y bajo presión. En los últimos meses he golpeado todos los muros que creo que tiene Android; He estado aquí con bastante frecuencia y esta es mi primera publicación. Pensé que esto era una solución difícil, así que me disculpo sinceramente si la calidad de mi respuesta refleja la dificultad que tuve para llegar a ella.

ǝɲǝɲbρɯͽ
fuente
Gran respuesta, nada de qué disculparse y gracias por el enlace de YouTube
Sabuncu
Gracias por esto. El paso 3 en "Otras comprobaciones" fue lo que hizo por mí:$ rm -rf ~/.gradle/
Cadena
24

Descargue la imagen del sistema (del nivel de Android específico de su proyecto) desde el administrador de SDK para el proyecto que ha importado.

Este error se produce cuando no tiene el sdk de destino de su proyecto de Android instalado en la carpeta sdk

por ej. El nivel sdk de destino de su proyecto importado puede ser android-19 y en la carpeta sdk-> system-images es posible que tenga instalado android-21. por lo que debe descargar la imagen del sistema android-19 y otros archivos desde el administrador sdk o puede copiarlo y pegarlo si tiene la imagen del sistema.

Ankit Bansal
fuente
1
Esto me lo solucionó: también noté una advertencia amarilla 'Error en la sincronización del proyecto Gradle' en AS, cuando miré en la ventana Mensajes, incluía un hipervínculo para instalar el SDK de destino faltante con unos pocos clics.
Sr. Bungle
13

Eliminar:

<facet type="android" name="Android">
    <configuration />
</facet>

en su archivo iml. Funciona para mi.

https://plus.google.com/+AlexRuiz/posts/49hP3V9GSGe

toni
fuente
Esto no es aplicable a un proyecto de Gradle, ¿verdad? Mi project.xml contiene<facet type="java-gradle" name="Java-Gradle">...
Trinimon
9

Esto me sucedió recientemente cuando cerré un proyecto de Android Studio e importé otro proyecto de Eclipse. Parecía ser un error en Android Studio donde conserva algunas configuraciones de Gradle del proyecto previamente abierto y luego se confunde en el nuevo proyecto.

La solución fue extremadamente simple: cierre el proyecto y apague Android Studio por completo, antes de volver a abrirlo y luego importar / abrir el nuevo proyecto. Todo va bien a partir de ese momento.

rehan
fuente
4

La solución simple para mí fue

  1. Construir> Proyecto limpio
  2. Reinicie Android Studio
holangun
fuente
3

En mi caso, configurar la 'versión de Gradle' igual que la 'versión del complemento de Android' en Archivo-> Estructura del proyecto-> Proyecto solucionó el problema para mí.

algo
fuente
3

Aparentemente este error tiene múltiples causas. Esto es lo que me solucionó.

Estaba ejecutando el comando de compilación así:

./gradlew :testapp: build

Ejecutarlo sin el espacio solucionó el problema:

./gradlew :testapp:build
David
fuente
3

Recibí este error al cambiar de una rama de Git a otra y luego intentar ejecutar "Proyecto limpio". Solía ackbuscar el nombre de la tarea y lo encontré en un archivo .iml.

Mi solución fue regenerar el archivo .iml del proyecto haciendo clic (en el menú principal) Herramientas> Android> Sincronizar proyecto con archivos Gradle. ( Gracias a esta respuesta ).

Josh
fuente
2

A veces, si ha abierto dos ventanas de Android Studio y cuando intenta compilar, puede ocurrir este problema. Para mí, cuando estaba compilando un módulo respaldado de Google Cloud Endpoint que no estaba incrustado en un proyecto, sino compartido entre diferentes proyectos de Android Studio, y cuando hay más de una instancia abierta, este error solía surgir para mí. Pero tan pronto como cierre otras ventanas, todo estará bien. A veces, es posible que deba reiniciar Android Studio por completo.

Mohammed Mukhtar
fuente
2

Tengo este problema porque no pude encontrar la ruta del SDK de Android. Me faltaba un local.propertiesarchivo con él o una ANDROID_HOMEvariable de entorno con él.

Morten Holmgaard
fuente
buen hombre, lo mismo aquí. Agregué ANDROID_SDK a mi ~ / .bash_profile y funcionó
Gary O 'Donoghue
1

Asegúrese de tener los valores más recientes en sus archivos gradle. Al momento de escribir este artículo:

  • buildToolsVersion "21.1.2"

  • dependencias {classpath 'com.android.tools.build:gradle:1.1.0'}

IgorGanapolsky
fuente
1

Otra solución al mismo problema:

Esto me sucedió cada vez que importé un proyecto de eclipse en el estudio usando el asistente (versión de estudio 1.3.2).

Lo que encontré, por casualidad, fue que salir del estudio de Android y luego reiniciarlo de nuevo hizo que el problema desapareciera.

Frustrante, pero espero que esto ayude a alguien ...

Mick
fuente
1
  1. Abrir símbolo del sistema
  2. luego vaya a la carpeta de su proyecto a través del símbolo del sistema
  3. Escriba gradlew build and run
Krishan
fuente
1

Problema

Específicamente recibí el "[module_name]:prepareDebugUnitTestDependencies" task not founderror, cada vez que ejecuté gradle build. Esto me sucedió después de actualizar mi Android Studio a 3.0.0.

Investigación

Anteriormente había agregado opciones de línea de comandos al compilador basado en gradle, que puede encontrar en: Archivo -> Configuración -> Compilación, ejecución, implementación -> Compilador -> Opciones de línea de comandos . Específicamente, había excluido una serie de tareas, incluida la tarea antes mencionada. Si bien eso funcionó bien en la versión estable anterior (2.3 en ese momento), parece que esta fue la razón detrás del error de compilación.

Solución

Ésta es una de las muchas posibles soluciones. Asegúrese de tener las opciones de línea de comandos correctas especificadas en la configuración en: Archivo -> Configuración -> Compilación, ejecución, implementación -> Compilador -> Opciones de línea de comandos , y que ninguna de ellas esté causando este problema.

En mi caso, eliminé la exclusión de esta tarea (y otras tareas que parecían relacionadas), dejé las tareas no relacionadas excluidas y ¡funcionó!

As
fuente
0

Establezca la ruta de la carpeta raíz y luego ejecute el siguiente comando

ex : cd C:\Users\maha\Documents\gradle\gs-gradle-master\initial
Maha
fuente
0

Esto es lo que hice

  1. Eliminar carpeta .idea

    $ mv .idea .idea.bak

  2. Importar el proyecto nuevamente

Ken Ratanachai S.
fuente
0

Elimino / cambio el nombre de la .gradlecarpeta c:\users\Myuser\.gradley reinicio Android Studio y funcionó para mí

ashkufaraz
fuente
0

Aparentemente, este problema causado por Android Studio en varias situaciones, pero la razón es un error de compilación al importar un proyecto existente en Android Studio.

En mi caso, importé mi proyecto existente donde se suponía que debía instalar algunas herramientas de compilación y finalmente la configuración de compilación se realizó con un error. En este caso, simplemente haga lo siguiente

  1. Cerrar el proyecto actual
  2. Archivo> Nuevo> Importar proyecto (no use el proyecto reciente abierto)

    Nota: Estoy seguro de que este tipo de error no está en el código fuente cuando sucedió en el proyecto Importar .
Deva
fuente
0

En mi caso, me encuentro con este problema de que las opciones de compilación en Android Studio es "stacktrace". Modifique stacktrace a --stacktrace , el problema resuelto.

ingrese la descripción de la imagen aquí

timyau
fuente
0

He resuelto este problema Solo necesita crear un archivo en la carpeta de Android

Ir a la carpeta de Android

Crear archivo local.properties

luego simplemente agregue este código en el archivo local.properties: -

Si está utilizando MacBook, sdk.dir = / Users / USERNAME / Library / android / sdk

si está utilizando Windows, entonces sdk.dir = C: \ Users \ USERNAME \ AppData \ Local \ Android \ sdk

si está utilizando Linux, entonces sdk.dir = / home / USERNAME / Android / sdk

si desea saber cuál es el nombre de usuario de su sistema, simplemente use el comando para Mac whoami

y luego simplemente vuelva a ejecutar el comando react-native run-android

Gracias :)

Desarrollador Usman
fuente