La compilation d'Android Studio échoue avec "Tâche" introuvable dans le projet racine "MyProject". "

89

J'obtiens cette erreur lorsque j'essaie de créer mon projet après avoir changé d'ordinateur portable et mis à jour vers Android Studio version 0.8.2.

ÉCHEC: la construction a échoué avec une exception.

  • Qu'est-ce qui ne va pas: Tâche «» introuvable dans le projet racine «MyProject».

  • Essayez: exécutez des tâches de gradation pour obtenir une liste des tâches disponibles. Exécutez avec l'option --stacktrace pour obtenir la trace de la pile. Exécutez avec l'option --info ou --debug pour obtenir plus de sortie de journal.

ÉCHEC DE CONSTRUCTION

Voici mes fichiers Gradle:

Paramètres de niveau supérieur.

include ':MyProject'

build.gradle dans 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'
}

Le niveau supérieur build.gradle est vide

TomRichardson
la source
Quelle commande exacte exécutez-vous?
Opal
@Opal J'essaie juste de nettoyer et de reconstruire
TomRichardson
Bon ok. Quelle commande exécutez-vous?
Opal
8
Essayez de fermer et de rouvrir Android Studio. Cela a fonctionné pour moi.
petter
2
Aucune réponse sélectionnée parmi ces nombreuses ??? Publiez au moins votre réponse, cela aidera aussi les autres.
kAmol le

Réponses:

63

Bien que tard dans la réponse, c'est difficile pour Google (les guillemets simples) et ce qui se passe n'est pas clair. Je n'ai pas encore la réputation de commenter ou de demander la portée (ou de publier 3 liens), donc cette réponse peut être un peu fastidieuse.

Pour répondre rapidement, vous pouvez avoir plusieurs plugins Gradle dans votre projet.

Synchroniser Gradle Wrapper et Plugins

Mon problème semblait commencer par un fichier IML corrompu. Android Studio (entre la fermeture et la réouverture d'un projet) a commencé à se plaindre d'un IML disparu (ce n'était pas le cas) et un module devrait être supprimé, ce que j'ai refusé. Cela a persisté, j'ai mis à niveau vers AS 0.8.7 (canal canari) et je suis resté bloqué sur le problème OP (tâche '' introuvable dans le projet racine). Cela a complètement bloqué les versions, j'ai donc dû creuser pour Gradle.

Mes étapes de réparation sur OSX (veuillez ajuster pour Windows):

  1. Mettre à niveau Android Studio vers la version 0.8.7
    • Préférences | Mises à jour | Basculez "Beta Channel" sur "Canary Channel", puis effectuez une vérification maintenant.
    • Vous pourrez peut-être ignorer cela.
  2. Vérifié le wrapper Gradle (actuellement 1.12.2; n'essayez pas d'utiliser 2.0 pour le moment).

    • En supposant que vous n'avez pas besoin d'une version particulière, utilisez la dernière distribution prise en charge

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

    • Cela peut être défini dans Android Studio dans Préférences | Gradle (mais la 0.8.7 me donnait des erreurs de «localisation invalide»).

    • Le «wrapper» n'est qu'une copie de Gradle pour chaque projet Android Studio. Il vous permet d'avoir Gradle 2 dans votre système d'exploitation et différentes versions dans vos projets. La documentation du développeur Android explique cela ici .
    • Ensuite, ajustez vos fichiers build.gradle pour le plugin . La version du plugin Gradle doit être compatible avec la version distribution / wrapper, pour l'ensemble du projet. Comme la documentation des outils (tools.android.com/tech-docs/new-build-system/user-guide#TOC-Requirements) est légèrement obsolète, vous pouvez définir la version du plugin trop faible (comme 0.8.0) et Android Studio générera une erreur avec la plage acceptable pour le wrapper.

Exemple, dans build.gradle, vous avez ce plugin:

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

Vous pouvez essayer de le changer pour la version exacte, comme ceci:

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

et (après avoir enregistré la version à partir de laquelle vous changez dans chaque cas) vérifier que chaque fichier build.gradle de votre projet extrait la même version du plugin. Garder le «+» devrait fonctionner (pour 0.12.0, 0.12.1, 0.12.2, etc.), mais ma compilation a réussi lorsque j'ai mis à jour la bibliothèque Volley de Google (à l'origine gradle: 0.8. +) Et mon projet principal (à l'origine 0.12. +) vers la version fixe: gradle: 0.12.2.

Autres contrôles

  1. Assurez-vous que vous n'avez pas deux modules d'application Android dans le même projet

    • Cela peut interagir avec la solution finale (différentes versions de Gradle, ci-dessus) et provoquer

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

    • Pour vérifier, construire | Make Project ne doit pas faire apparaître une fenêtre vous demandant quelle application vous souhaitez créer.

  2. Invalidez vos caches
    • Fichier | Invalidate Caches / Restart (stackoverflow.com/a/19223269/513413)
  3. Si l'étape 2 ne fonctionne pas, supprimez ~ / .gradle / (www.wuttech.com/index.php/tag/groovy-lang-closure/)
    • Quittez Android Studio
    • $ rm -rf ~ / .gradle /
    • Démarrez Android Studio, puis synchronisez:
      • Outils | Android | Synchroniser le projet avec les fichiers Gradle
    • Répétez cette séquence entière (quitter ... synchroniser) plusieurs fois avant d'abandonner.
  4. Nettoyez le projet
    • Construire | Projet propre

Si vous voyez ceci ...

Dans mes versions récentes, j'ai continué à voir d'horribles échecs (pages d'exceptions) mais en quelques secondes, les messages disparaissaient, la construction réussissait et l'application déployée. Comme je ne pouvais jamais l'expliquer et que l'application fonctionnait, je n'ai jamais remarqué que j'avais deux plugins Gradle dans mon projet. Je pense donc que les plugins Gradle se sont combattus; l'un s'est écrasé, l'autre a perdu son état et a signalé l'erreur.

Si vous avez le temps, la vidéo d'une heure "A Gentle Introduction to Gradle" (www.youtube.com/watch?v=OFUEb7pLLXw) m'a vraiment aidé à aborder les fichiers de construction Gradle, les tâches, les décisions de construction, etc.

Avertissement

J'apprends toute cette pile, sur un OS étranger, après avoir travaillé une carrière différente ... le tout en même temps et sous pression. Au cours des derniers mois, j'ai touché tous les murs que je pense d'Android; Je suis venu ici assez souvent et c'est mon premier message. Je pensais que c'était une solution difficile, alors je m'excuse sincèrement si la qualité de ma réponse reflète la difficulté que j'ai eue à y arriver.

ǝɲǝɲbρɯͽ
la source
Excellente réponse, rien à excuser, et merci pour le lien YouTube
Sabuncu
Merci pour cela. L'étape 3 dans "Autres vérifications" a été ce qui l'a fait pour moi:$ rm -rf ~/.gradle/
Chaîne
24

Téléchargez l'image système (du niveau Android ciblé de votre projet) à partir du gestionnaire SDK pour le projet que vous avez importé.

Cette erreur survient lorsque vous n'avez pas le sdk cible de votre projet Android installé dans le dossier sdk

par exemple. Le niveau sdk cible de votre projet importé peut être android-19 et sur le dossier sdk-> system-images vous pouvez avoir android-21 installé. vous devez donc télécharger l'image système Android-19 et d'autres fichiers à partir du gestionnaire SDK ou vous pouvez le copier-coller si vous avez l'image système.

Ankit Bansal
la source
1
Cela a résolu le problème pour moi - j'ai également remarqué un avertissement jaune `` La synchronisation du projet Gradle a échoué '' dans AS, lorsque j'ai regardé dans la fenêtre Messages, il comprenait un lien hypertexte pour installer le SDK cible manquant en quelques clics.
M. Bungle
13

Retirer:

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

dans votre fichier iml. Ça marche pour moi.

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

toni
la source
Cela ne s'applique pas à un projet Gradle, n'est-ce pas? Mon project.xml contient<facet type="java-gradle" name="Java-Gradle">...
Trinimon
9

Cela m'est arrivé récemment lorsque j'ai fermé un projet Android Studio et importé un autre projet Eclipse. Cela semblait être un bogue dans Android Studio où il préserve certains paramètres de gradle d'un projet précédemment ouvert, puis se confond dans le nouveau projet.

La solution était extrêmement simple: fermez le projet et fermez complètement Android Studio, avant de le rouvrir, puis importez / ouvrez le nouveau projet. Tout se passe bien à partir de là.

Rehan
la source
4

Une solution simple pour moi était

  1. Construire> Projet propre
  2. Redémarrez Android Studio
Holangun
la source
3

Dans mon cas, définir la `` version Gradle '' de la même manière que la `` version du plug-in Android '' sous Fichier-> Structure du projet-> Projet a résolu le problème pour moi.

quelque chose
la source
3

Apparemment, cette erreur a plusieurs causes. Voici ce qui a résolu le problème pour moi.

J'exécutais la commande build comme ceci:

./gradlew :testapp: build

L'exécuter sans l'espace a résolu le problème:

./gradlew :testapp:build
David
la source
3

J'ai eu cette erreur en passant d'une branche Git à une autre, puis en essayant d'exécuter "Clean Project". j'ai utiliséack de rechercher le nom de la tâche et trouvé dans un fichier .iml.

Ma solution était de régénérer le fichier .iml du projet en cliquant (dans le menu principal) sur Outils> Android> Synchroniser le projet avec les fichiers Gradle. ( Merci à cette réponse .)

Josh
la source
2

Parfois, si vous avez ouvert deux fenêtres d'Android Studio et que vous essayez de compiler, ce problème peut survenir. Pour moi, lorsque je compilais un module Google Cloud Endpoint sauvegardé qui n'était pas intégré dans un projet, plutôt partagé entre différents projets Android Studio, et lorsqu'il y a plus d'une instance ouverte, cette erreur s'est produite pour moi. Mais dès que vous fermez d'autres fenêtres, tout ira bien. Parfois, vous devrez peut-être redémarrer complètement Android Studio.

Mohammed Mukhtar
la source
2

J'ai eu ce problème car il n'a pas pu trouver le chemin du SDK Android. Il me manquait un local.propertiesfichier avec ou une ANDROID_HOMEvariable d'environnement avec.

Morten Holmgaard
la source
bon homme, même chose ici. ANDROID_SDK ajouté à mon ~ / .bash_profile et cela a fonctionné
Gary O 'Donoghue
1

Assurez-vous d'avoir les dernières valeurs dans vos fichiers gradle. Au moment d'écrire ces lignes:

  • buildToolsVersion "21.1.2"

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

IgorGanapolsky
la source
1

Encore une autre solution au même problème:

Cela m'est arrivé à chaque fois que j'importais un projet eclipse en studio à l'aide de l'assistant (studio version 1.3.2).

Ce que j'ai trouvé, tout à fait par hasard, c'est que quitter le studio Android, puis redémarrer le studio a fait disparaître le problème.

Frustrant, mais j'espère que cela aidera quelqu'un ...

Mick
la source
1
  1. Ouvrir l'invite de commande
  2. puis accédez à votre dossier de projet via l'invite de commande
  3. Tapez gradlew build et exécutez
Krishan
la source
1

Problème

J'ai spécifiquement le "[module_name]:prepareDebugUnitTestDependencies" task not found erreur, chaque fois que j'ai exécuté gradle build. Cela m'est arrivé après la mise à jour de mon Android Studio vers la version 3.0.0.

Enquête

J'avais précédemment ajouté des options de ligne de commande au compilateur basé sur gradle, que vous pouvez trouver sous: File -> Settings -> Build, Execution, Deployment -> Compiler -> Command-line Options . Plus précisément, j'avais exclu un certain nombre de tâches, y compris la tâche susmentionnée. Bien que cela fonctionnait bien sur la version stable précédente (2.3 à l'époque), il semble que ce soit la raison de l'échec de la construction.

Solution

C'est l'une des nombreuses solutions possibles. Assurez-vous que vous disposez des options de ligne de commande correctes spécifiées dans les paramètres sous: Fichier -> Paramètres -> Génération, Exécution, Déploiement -> Compilateur -> Options de ligne de commande , et qu'aucune d'entre elles n'est à l'origine de ce problème.

Dans mon cas, j'ai supprimé l'exclusion de cette tâche (et d'autres tâches qui semblaient liées), laissé les tâches non liées exclues, et cela a fonctionné!

As
la source
0

Définissez le chemin du dossier racine et après avoir exécuté la commande ci-dessous

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

C'est ce que j'ai fait

  1. Supprimer le dossier .idea

    $ mv .idea .idea.bak

  2. Importez à nouveau le projet

Ken Ratanachai S.
la source
0

Je supprime / Renomme le .gradledossier dans c:\users\Myuser\.gradleet redémarre Android Studio et j'ai travaillé pour moi

ashkufaraz
la source
0

Apparemment, ce problème est causé par Android Studio dans différentes situations, mais la raison en est une erreur de construction lors de l'importation d'un projet existant dans Android Studio.

Dans mon cas, j'ai importé mon projet exist où j'étais censé installer quelques outils de construction, puis finalement la configuration de la construction a été effectuée avec une erreur. Dans ce cas, procédez comme suit

  1. Fermer le projet en cours
  2. Fichier> Nouveau> Projet d'importation (n'utilisez pas le projet récent ouvert)

    Remarque: Je suis sûr que ce type d'erreur n'est pas sur le code source lorsque cela s'est produit sur le projet d'importation .
Deva
la source
0

Dans mon cas, je rencontre ce problème que la compilation des options dans Android Studio est "stacktrace". Modifiez stacktrace en --stacktrace , le problème est résolu.

entrez la description de l'image ici

Timyau
la source
0

J'ai résolu ce problème Il vous suffit de créer un fichier dans le dossier Android

Aller dans le dossier Android

Créer le fichier local.properties

puis ajoutez simplement ce code dans le fichier local.properties: -

Si vous utilisez MacBook, sdk.dir = / Users / USERNAME / Library / android / sdk

si vous utilisez Windows, sdk.dir = C: \ Users \ USERNAME \ AppData \ Local \ Android \ sdk

si vous utilisez Linux, sdk.dir = / home / USERNAME / Android / sdk

si vous voulez savoir quel est votre nom d'utilisateur système, utilisez simplement la commande pour Mac whoami

puis relancez simplement la commande react-native run-android

Merci :)

Développeur Usman
la source