web-dev-qa-db-fra.com

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

Lorsque j'essaie de compiler un project importé de github, ma construction de 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 cela n'a pas fonctionné. De plus, je n'ai pas pu obtenir plus d'informations sur l'erreur en effectuant une recherche sur Internet.

app\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

Est-ce que quelqu'un sait pourquoi cette erreur se produit?

6
Yannick

Je devais changer le distributionUrl dans le gradle-wrapper.properties en distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.Zip pour que la construction soit à nouveau opérationnelle. Cela semble être un problème similaire Echec de la synchronisation Gradle: Impossible de trouver la méthode .

18
Lukas Thum

On dirait que vous ne parvenez pas à résoudre votre testInstrumentation. Utilisez-vous facebook.screenshot api? si c'est le cas, vous devez l'inclure.

Sinon, commentez simplement la section testInstrument et voyez si vous pouvez construire sans les tests pour l'instant si vous ne vous en souciez pas. sinon, vous devez corriger votre dépendance à cet égard.

* commenter testInstrumentationRunner "Android.support.test.runner.AndroidJUnitRunner"

Cela provoque la création d'une ligne dans votre manifeste et sa résolution n'est probablement pas correcte. 

0
Sam