54 votes

La construction de Gradle échoue : Impossible de trouver la méthode 'org.gradle.api.tasks.testing.Test.getTestClassesDirs()Lorg/gradle/api/file/FileCollection;'.

Lorsque j'essaie de compiler un fichier importé projet de github, ma construction gradle échoue toujours avec l'exception suivante.

Unable to find method 'org.gradle.api.tasks.testing.Test.getTestClassesDirs()Lorg/gradle/api/file/FileCollection;'
Possible causes for this unexpected error include:<ul><li>Gradle's dependency cache may be corrupt (this sometimes occurs after a network connection timeout.)
Re-download dependencies and sync project (requires network)</li><li>The state of a Gradle build process (daemon) may be corrupt. Stopping all Gradle daemons may solve this problem.
Stop Gradle build processes (requires restart)</li><li>Your project may be using a third-party plugin which is not compatible with the other plugins in the project or the version of Gradle requested by the project.</li></ul>In the case of corrupt Gradle processes, you can also try closing the IDE and then killing all Java processes

J'ai suivi les instructions données mais ça n'a pas marché. De plus, je n'ai pas pu obtenir d'autres informations sur cette erreur en la recherchant sur Internet.

application \build.gradle :

   apply plugin: 'com.android.application'

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.2"
    defaultConfig {
        applicationId "iammert.com.androidarchitecture"
        minSdkVersion 21
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    dataBinding {
        enabled = true
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    /*androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })*/
    //  testCompile 'junit:junit:4.12'

    //support lib
    implementation rootProject.ext.supportLibAppCompat
    implementation rootProject.ext.supportLibDesign

    implementation rootProject.ext.archRuntime
    implementation rootProject.ext.archExtension
    annotationProcessor rootProject.ext.archCompiler

    implementation rootProject.ext.roomRuntime
    annotationProcessor rootProject.ext.roomCompiler

    implementation rootProject.ext.okhttp
    implementation rootProject.ext.retrofit
    implementation rootProject.ext.gsonConverter

    //dagger
    annotationProcessor rootProject.ext.daggerCompiler
    implementation rootProject.ext.dagger
    implementation rootProject.ext.daggerAndroid
    implementation rootProject.ext.daggerAndroidSupport
    annotationProcessor rootProject.ext.daggerAndroidProcessor

    //ui
    implementation rootProject.ext.picasso

}

\build.gradle :

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {

    repositories {
        maven { url 'https://maven.google.com' }
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.0-alpha3'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
        maven { url 'https://maven.google.com' }
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

ext {
    supportLibVersion = '25.3.1'
    daggerVersion = '2.11'
    retrofitVersion = '2.1.0'
    gsonConverterVersion = '2.1.0'
    okhttpVersion = '3.8.0'
    picassoVersion = '2.5.2'
    archVersion = '1.0.0-alpha1'

    supportLibAppCompat = "com.android.support:appcompat-v7:$supportLibVersion"
    supportLibDesign = "com.android.support:design:$supportLibVersion"
    archRuntime = "android.arch.lifecycle:runtime:$archVersion"
    archExtension = "android.arch.lifecycle:extensions:$archVersion"
    archCompiler = "android.arch.lifecycle:compiler:$archVersion"
    roomRuntime = "android.arch.persistence.room:runtime:$archVersion"
    roomCompiler = "android.arch.persistence.room:compiler:$archVersion"
    dagger = "com.google.dagger:dagger:$daggerVersion"
    daggerCompiler = "com.google.dagger:dagger-compiler:$daggerVersion"
    daggerAndroid = "com.google.dagger:dagger-android:$daggerVersion"
    daggerAndroidSupport = "com.google.dagger:dagger-android-support:$daggerVersion"
    daggerAndroidProcessor = "com.google.dagger:dagger-android-processor:$daggerVersion"
    retrofit = "com.squareup.retrofit2:retrofit:$retrofitVersion"
    gsonConverter = "com.squareup.retrofit2:converter-gson:$gsonConverterVersion"
    okhttp = "com.squareup.okhttp3:okhttp:$okhttpVersion"
    picasso = "com.squareup.picasso:picasso:$picassoVersion"
}

gradle \gradle -wrapper.properties :

#Thu May 18 17:31:31 EEST 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.0-milestone-1-all.zip

Quelqu'un sait-il pourquoi cette erreur se produit ?

109voto

Lukas Thum Points 665

J'ai dû changer le nom de la distribution dans l'onglet "Distribution". gradle-wrapper.properties a distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip pour que la construction fonctionne à nouveau. Ceci semble être un problème similaire La synchronisation de Gradle a échoué : Impossible de trouver la méthode .

2 votes

J'ai eu le même problème. Aucune des réponses n'a fonctionné pour moi. J'ai finalement rétrogradé à la version précédente et ça marche ! Je suppose que c'est un bug lié aux dernières versions de Gradle.

0 votes

Que fait-il ?

0 votes

Oui, cela a fonctionné pour moi, mais une dernière astuce : si vous avez d'autres projets Android qui se construisent, jetez un coup d'œil au gradle-wrapper.properties pour eux et utilisez ensuite la même distributionUrl pour réparer votre projet cassé.

5voto

neer17 Points 528

Si vous obtenez cette erreur après avoir supprimé .gradle et .idea alors l'erreur se produit car les fichiers Gradle ne sont pas disponibles pour ce projet et Android studio est incapable de télécharger la même version de la dépendance Gradle. Vous pouvez passer à une version inférieure de la dépendance Gradle choisissez ici et ensuite aller à gradle-wrapper-properties et changer la version, dans mon cas je l'ai changé de distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip a distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip . Après avoir téléchargé l'ancienne version de la dépendance Gradle, une boîte de dialogue de mise à jour de Gradle vous invite à récupérer la dernière version, qui est la suivante 5.1.1 dans ce cas.

2 votes

À ce jour, la version à utiliser est la 4.10.1 : distributionUrl=https\://services.gradle.org/distributions/g‌​radle-4.10.1-all.zip

2voto

Kalifia Billal Points 1

Dans le fichier SampleProject/gradle/wrapper/gradle-wrapper.properties

changement

 distributionUrl=https://services.gradle.org/distributions/gradle-5.1.1-all.zip
 

à

 distributionUrl=https://services.gradle.org/distributions/gradle-4.6-all.zip
 

0 votes

Vous devez préciser que cette réponse vise une version différente.

0voto

Sam Points 245

Il semble que vous ne parveniez pas à résoudre votre testInstrumentation. Utilisez-vous facebook.screenshot api ? Si oui, vous devez l'inclure.

Sinon, commentez simplement la section testInstrument et voyez si vous pouvez construire sans les tests pour le moment si vous ne vous en souciez pas. Sinon, vous devez corriger votre utilisation de la dépendance.

*commenter testInstrumentationRunner "Android.support.test.runner.AndroidJUnitRunner" (en anglais)

Cela entraîne la création d'une ligne dans votre manifeste, qui ne se résout probablement pas correctement.

0voto

vitalinvent Points 119

Pour Android studio chemin "dossier projet/gradle/wrapper/gradle-wrapper.properties" changement d'URL valeur distributionUrl= https://services.gradle.org/distributions/gradle-4.10.1-all.zip approprié ( précédent ) version de http://services.gradle.org/distributions/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X