web-dev-qa-db-fra.com

Android Studio: échec de la construction Gradle - Échec de l'exécution pour la tâche ': compileDebugAidl'

Après les modifications apportées à la source et à la construction avec gradle dans Android Studio (aperçu des E/S) AI - 130.677228, la génération échoue avec l'erreur suivante:

Gradle: 
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':compileDebugAidl'.
> No signature of method: com.Android.ide.common.internal.WaitableExecutor.waitForTasks() is applicable for argument types: () values: []
  Possible solutions: waitForAllTasks()
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
Could not execute build using Gradle distribution 'http://services.gradle.org/distributions/gradle-1.6-bin.Zip'.

La deuxième fois que vous exécutez une build, la build réussit.

Utilisation d'un wrapper Gradle avec la version 1.6

Cela craint vraiment car il fait une longue construction (non incrémentielle) après avoir échoué la première fois.

Existe-t-il un moyen de ne pas avoir cet échec?

EDIT pour inclure build.gradle

buildscript {

    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.Android.tools.build:gradle:0.4'
    }
}
apply plugin: 'Android'

task wrapper(type: Wrapper) {
    gradleVersion = '1.6'
}

dependencies {

    compile fileTree(dir: 'libs', include: '*.jar')
}

Android {
    compileSdkVersion "Google Inc.:Google APIs:17"
    buildToolsVersion "17"

    defaultConfig {
        minSdkVersion 11
        targetSdkVersion 17
    }
    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            Java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }

        instrumentTest.setRoot('tests')
    }
}

Lien vers le problème sur Google Code: https://code.google.com/p/Android/issues/detail?id=56158

36
seanmakesgames

Je ne sais pas comment cela est possible. Il semble que vous ayez un décalage entre le plugin Gradle lui-même et ses dépendances qui fournit la classe WaitableExecutor.

Cependant, vous mentionnez Gradle 1.5 et c'est un problème.

Le plugin version 0.3 était compatible avec Gradle 1.3-1.4 La nouvelle version sortie la semaine dernière, 0.4 est compatible avec Gradle 1.6+

Assurez-vous d'utiliser 0.4 et la nouvelle version Gradle.

11
Xavier Ducrohet

J'ai résolu ce problème en définissant buildToolsVersion dans mon build.gradle fichier pour correspondre à la dernière version des Android SDK Build-tools dans le gestionnaire de SDK.

Showing Build-tools version 22.0.1 is installed

Dans mon cas, j'ai la Android SDK Build-tools version 22.0.1 installée, donc j'ai défini buildToolsVersion en conséquence:

apply plugin: 'com.Android.application'

Android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"
...

Après avoir apporté ce changement, mon application se construit sans incident.

36
bonh

J'étais confronté au même problème "Impossible d'exécuter la tâche: compileDebugaidl aidl/debug /".

J'ai vu plus loin dans Gradle Console pour les détails et il se lisait comme ci-dessous:

Impossible de capturer un instantané des fichiers de sortie pour la tâche 'prepareComAndroidSupportAppcompatV72103Library' lors de la vérification à jour.

Impossible de supprimer l'entrée '/Users/..../.../.../..../build/intermediates/exploded-aar/com.Android.support/appcompat -v7/21.0.3 'à partir du cache outputFileStates.bin (/Users/..../..../..../.gradle/2.2.1/taskArtifacts/outputFileStates.bin).

Je l'ai résolu en supprimant le fichier outputFileStates.bin du terminal et j'ai autorisé Gradle à le recréer.

J'espère que ça aide quelqu'un.

3
Alfred

Ajoutez le code ci-dessous dans votre fichier build.gradle. Cela fonctionne pour moi.

dependencies {

compile fileTree(dir: 'libs', include: '*.jar')

}
1
Koushik

S'il vous plaît, essayez de vérifier l'option "Utiliser le wrapper de gradle par défaut" dans les paramètres au niveau du projet.

Android Studio -> Fichier -> Paramètres -> Build, Execution, Deployment -> Build Tools -> Gradle

1
yaircarreno

Ajouter:

compileSdkVersion 17 à votre fichier buid.gradel (ci-dessous).

Et utilisez la version 3 du plugin: com.Android.tools.build:gradle:0.3 (ou supérieur pour les questions futures, etc.)

Edit : projet de référence que je viens de créer. Constructions, panneaux, etc. https://github.com/yegdroid/gradle_demo

 // 
 // Une application de base Android qui respecte toutes les conventions 
 // 
 Buildscript {
 référentiels {
 mavenCentral () 
} 
 dépendances {
 classpath 'com.Android.tools.build:gradle:0.3'
} 
} 
 Appliquer le plug-in: 'Android' 
 
 Android {
 testBuildType = "debug" 
 
 defaultConfig { 
 versionCode = 1 
 versionName = "0.1" 
 minSdkVersion = 9 
 targetSdkVersion = 17 
 
 
 compileSdkVersion 17 
 BuildConfig "private final static boolean DEFAULT = true;",\
 "Private final static String FOO = \" foo\";" 
} 
 
 buildTypes {
 debug {
 packageNameSuffix = ".debug" 
 
 buildConfig "privé final statique booléen DEBUG2 = false;" 
 } 
} [.___ _.] 
 aaptOptions {
 noCompress "txt" 
} 
 sourceSets {
 main {
 principal {
 manifeste {
 srcFile 'AndroidManifest.xml' 
} 
 Java {
 srcDir 'src' 
} 
 res {
 srcDir 'res' 
} 
 actifs {
 srcDir 'assets' 
} 
 ressources {
 srcDir 'src' 
} 
} 
} 
} 
1
cbrulak

J'aimerais enregistrer mon problème et ma solution ici, car il est presque pertinent pour le problème signalé que si quelqu'un tombe sur l'erreur, il pourrait la surmonter rapidement.

J'ai rencontré un problème similaire avec Échec de l'exécution de la tâche: compileDebugaidl aidl/debug/.. L'accès est refusé ...

J'ai surmonté le problème en supprimant le répertoire de construction et en le reconstruisant à nouveau [j'utilise le Gradle 0.14.4]

0

Puis-je voir la sortie gradle (filtrée par erreur)? (toolwindow gradle, gradle tab) Il semble qu'il y ait un problème avec les fonctions à l'intérieur des fichiers aidl, qui sont principalement destinées à l'interface d'application et aux services externes. Etc pour transférer des données vers un widget, ou si vous avez besoin d'un transfert de données entre deux applications. La deuxième possibilité est deux bibliothèques avec la même structure aidl, une seule fonction est différente, une seule, ou vous utilisez deux fois la même bibliothèque. Une autre raison que j'ai vue plus récemment avec ce message

0
Milan Jurkulak

Le quelque chose d'AIDL manquant est google Android pour ne pas mettre à jour le chemin de classe des dépendances Gradle majeures.

Correction: - ouvrir le fichier de gradle du projet (pas d'application, de projet!) - remplacer: classpath 'com.Android.tools.build:gradle:1.0.1' ou autre avec classpath 'com .Android.tools.build: gradle: 1.3.1 '

Si vous ne pouvez pas compiler un temps auparavant, projet compilable, le chat et le chien de Google ne dorment pas et font des changements, des mises à jour, vous devez donc vous réveiller et faire des changements là où ils oublient. Et gradle est un projet et un buggy assez instables.

0
Milan Jurkulak

Ça marche pour moi
éditez dans votre projet build.gradle

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    repositories {
        jcenter()
        mavenCentral()
    }
    dependencies {
        //delete this line below   
        classpath 'com.Android.tools.build:gradle:1.0.1'
        //add this line below
        classpath 'com.Android.tools.build:gradle:1.2.3'
    }
}
0
IloveIniesta