Méthode non prise en charge: AndroidProject.getPluginGeneration () lors de l'exécution du projet

105

J'essaie d'exécuter mon projet avec Android Studio 2.2 mais j'obtiens cette erreur

Unsupported method: AndroidProject.getPluginGeneration().
The version of Gradle you connect to does not support that method.

J'utilise ButterKnife 8.4.0

Mon app gradle.file:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.0'
        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
    }
}

Mon fichier gradle de module:

apply plugin: 'com.android.application'
apply plugin: 'android-apt'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.3"

    defaultConfig {
        applicationId "xxx.xx"
        minSdkVersion 10
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
}

dependencies {
    compile 'com.jakewharton:butterknife:8.4.0'
    apt 'com.jakewharton:butterknife-compiler:8.4.0'
}

Pourquoi cela ne fonctionne-t-il pas et comment puis-je le résoudre?

Fusion froide
la source
@Tim Castelijns, que se passe-t-il si vous appliquez des solutions à partir des réponses actuelles?
azizbekian
@azizbekian comment est-ce pertinent
Tim

Réponses:

281

Problème général: -

Cela peut se produire car AS vérifiait la disponibilité de la fonction Instant Run. Le correctif est de désactiver Instant Run:

Windows et Linux:

File -> Settings -> Build, Execution, Deployment -> Instant Run.

Mac:

Android Studio -> Preferences -> Build, Execution, Deployment -> Instant Run.

entrez la description de l'image ici

Merci à @pophus d'avoir mentionné cela.

Suivez ces étapes si vous utilisez un couteau à beurre: -

Si vous utilisez le nouveau compilateur Jack avec la version 2.2.0 ou plus récente, vous n'avez pas besoin du plugin 'android-apt' et pouvez à la place remplacer apt par annotationProcessor lors de la déclaration de la dépendance du compilateur.

Autrement dit, supprimer

classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'

à partir de votre fichier principal

Et supprimer

apply plugin: 'android-apt'

à partir de votre fichier de module principal

et remplacer

apt 'com.jakewharton:butterknife-compiler:8.4.0'

avec

annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0'
Fusion froide
la source
Je veux aimer la course instantanée, mais cela casse les choses de manière tellement étrange qu'il est impossible de l'utiliser régulièrement sans un investissement en temps assez important
Sirens
24

J'ai rencontré cette erreur dans Android Studio 2.2, dans mon cas, c'était parce que AS vérifiait la disponibilité de la fonctionnalité Instant Run. Je l'ai corrigé en désactivant Instant Run:

Android Studio -> Preferences -> Build, Execution, Deployment -> Instant Run

pophus
la source
A travaillé pour mon collègue. Il était au grade 1.2.3
gitter
1
Tu m'as sauvé la vie. Je travaille sur un projet proche de la sortie et je ne veux pas mettre à niveau gradle pour cela. Ce correctif / solution de contournement a vraiment aidé.
Better Shao
@pophus cela peut se produire pour différentes raisons, peut-être que la course instantanée en est une, j'ai rencontré ce problème avec Butterknife
ColdFusion
7

Changer la version gradle en 2.2

dependencies {
    classpath 'com.android.tools.build:gradle:2.2.0'
}
Sayem
la source
désolé c'était une faute de frappe je suis en fait en utilisant 2.2.0
ColdFusion
puis essayez de supprimer votre dossier .idea et redémarrez votre ide. Après la mise à jour du projet vers la version 2.2, j'ai également rencontré différents problèmes. Une solution que j'ai trouvée est de supprimer le dossier .idea. Maintenant, tout fonctionne bien.
Sayem le
6

Sous Windows, c'est

File / Settings/ Build, Execution, Deployment / Instant Run.

Décocher Enable Instant Run to hot swap code...

Flot2011
la source
1
votre réponse n'ajoute rien de nouveau, cela a déjà été indiqué dans d'autres réponses, pouvez-vous clarifier?
ColdFusion
1
Il m'a fallu un certain temps pour trouver cette option sous Windows, donc je voulais économiser pour d'autres cette fois. Aussi simple que ça
Flot2011
2

juste fermer la course instantanée

Fichier Windows - Paramètres - Construction, exécution, déploiement - Exécution instantanée.

MAC Android Studio -> Préférences -> Construction, exécution, déploiement -> Instant Run.

Michael
la source
3
votre réponse n'ajoute rien de nouveau, cela a déjà été indiqué dans d'autres réponses, pouvez-vous clarifier?
ColdFusion
2

J'ai couru dans la même erreur sur un très vieux projet. Étant donné qu'Android Studio 3.5 n'a plus l'option Instant Run, j'avais besoin d'une solution différente.

Il s'est avéré que je devais changer la version de gradle manuellement dans les paramètres du projet. J'ai utilisé la version qu'un nouveau projet utiliserait automatiquement, car les listes déroulantes étaient vides.

Dans mon cas, c'était Plugin Version 3.5.1 et Gradle Version 5.4.1.

Après cela, j'ai commencé un projet Build - Clean et tout s'est bien passé.

Gunnar Bernstein
la source
1

Mettez simplement à niveau la version du plugin Gradle vers la dernière version:

dependencies {
        classpath 'com.android.tools.build:gradle:3.5.1'

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

et assurez-vous que votre Gradle est aussi le dernier v:

#Sun Nov 03 16:47:32 IRST 2019
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip

REMARQUE: utiliser également googledans le référentiel

sana ebadi
la source