web-dev-qa-db-fra.com

Android gradle build Erreur: (9, 0) Méthode DSL Gradle introuvable: 'compile ()'.

J'obtiens l'erreur de construction suivante lorsque j'essaie de synchroniser mon projet: 

Error:(9, 0) Gradle DSL method not found: 'compile()'
Possible causes:The project 'AlexTest' may be using a version of Gradle that does not contain the method.
The build file may be missing a Gradle plugin.
link: Apply Gradle plugin

J'ai essayé d'appliquer chaque plugin Gradle auquel ils me lient dans le lien en bas, toujours le même problème, alors je conclus que la première erreur en est la cause. 

Voici le fichier build.gradle pour AlexTest (le répertoire du projet):

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.Android.tools.build:gradle:0.13.2'
        compile 'com.google.Android.gms:play-services:6.1.11'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

Je pense que c’était le fichier de classement avec lequel il avait des problèmes. Mais je ne suis pas sûr de la méthode à laquelle il fait référence. 

Voici aussi le fichier gradle-wrapper.properties auquel il est également fait référence:

#Mon Nov 10 01:06:12 PST 2014
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.1-all.Zip

peut-être que la version de gradle dans distributionUrl doit correspondre à celle de la dépendance?

J'ai aussi un fichier build.gradle dans le répertoire de l'application lui-même - 1 niveau inférieur, bien que je ne pense pas que ce soit ce à quoi il faisait référence, mais le voici: 

apply plugin: 'com.Android.application'

Android {
    compileSdkVersion 20
    buildToolsVersion "21.1.1"

    defaultConfig {
        applicationId "com.snappiesticker.alextest"
        minSdkVersion 16
        targetSdkVersion 20
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.google.Android.gms:play-services:6.1.+'
}
57
BigBoy1337

J'ai essayé d'appliquer chaque plugin Gradle auquel ils me lient dans le lien en bas, toujours le même problème, alors je conclus que la première erreur en est la cause. 

Correct.

Voici le fichier build.gradle pour AlexTest (le répertoire du projet):

Vous remarquerez que ce fichier contient un commentaire de code:

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

Supprimez la ligne compile 'com.google.Android.gms:play-services:6.1.11' de ce fichier. Laissez le compile 'com.google.Android.gms:play-services:6.1.+' que vous avez dans l'autre fichier build.gradle.

La fermeture dependencies dans buildscript concerne uniquement les plugins Gradle. La fermeture dependencies de niveau supérieur, présente dans le fichier build.gradle du module, concerne les dépendances de l'application.

78
CommonsWare

Saw a rapporté que le problème se posait pour d'autres raisons, mais cela a résolu pour moi.

Si vous apportez des modifications à la structure du projet (Android Studio) et que vous appuyez sur OK, Gradle sera synchronisé, mais ce type de synchronisation, si le bloc de dépendance a quelque chose comme:

Ce bloc restera comme ça après la synchronisation:

Une façon de résoudre le problème consiste à insérer un saut de ligne pour rester tel qu'il était avant la synchronisation ou à mettre un point-virgule entre les deux instructions.

J'espère que ça aide.

12
Antonio Del Grande

Il suffit d'ajouter une déclaration foolwoing dans vos dépendances

appliquer le plugin: 'jetty'

3
androidwifi

Déclarez les dépendances dans le fichier build.gradle du module, pas dans le fichier build.gradle d'AlexTest

 enter image description here

1

Bonjour tout le monde pour moi, c’était un "travail fastidieux" de faire fonctionner mon application sous Android Studio ( J'ai migré depuis Eclipse et je rencontrais ce problème ). Finalement, j'ai trouvé ce moyen très simple.

  1. Créez le dossier libs sous src/main/Java/c’est App/Java/libs dans le volet de gauche.
  2. Copiez et collez tous vos pots externes dans ici. 
  3. Allez dans le volet de gauche et cliquez avec le bouton droit sur votre application, puis cliquez sur Ouvrir les paramètres du module.
  4. Ensuite, la fenêtre de structure de projet apparaîtra.
  5. Puis déplacez-vous sur l'onglet Dépendances. Étape finale: Ajoutez tous vos fichiers JAR situés dans App/Java/libs (vous les trouverez dans src/main/Java/libs) l’un après l’autre.

C'est tout en profiter.

1
katmanco