Méthode non prise en charge: BaseConfig.getApplicationIdSuffix ()

248

Je lis donc Android 6 pour les programmeurs: une approche pilotée par les applications et les deux premiers exemples d'applications, je n'ai eu aucun problème avec les exemples, cette fois l'exemple FlagQuiz lorsqu'il est chargé dans Android Studio 3.0 Canary-3, je reçois cette erreur qui ne me laisse pas construire le projet:

Erreur: méthode non prise en charge: BaseConfig.getApplicationIdSuffix (). La version de Gradle à laquelle vous vous connectez ne prend pas en charge cette méthode. Pour résoudre le problème, vous pouvez modifier / mettre à niveau la version cible de Gradle à laquelle vous vous connectez. Vous pouvez également ignorer cette exception et lire d'autres informations du modèle.

Vous pouvez télécharger la source sur le site du livre ici pour tester avec la même base de code que je teste.

exts
la source

Réponses:

643

D'accord, j'ai compris comment résoudre ce problème.

  • Ouvrez build.gradle et changer la version gradle à la version recommandée:
    classpath 'com.android.tools.build:gradle:1.3.0'à
    classpath 'com.android.tools.build:gradle:2.3.2'
  • Frappé 'Try Again'
  • Dans la boîte de message, il sera dit 'Fix Gradle Wrapper and re-import project'Cliquez sur cela, puisque la version minimale de gradle est3.3
  • Une nouvelle erreur apparaîtra et indiquera The SDK Build Tools revision (23.0.1) is too low for project ':app'. Minimum required is 25.0.0- HitUpdate Build Tools version and sync project
  • Une fenêtre peut apparaître qui dit Android Gradle Plugin Update recommended, mettez à jour à partir de là.

Maintenant, le projet devrait être exécutable maintenant sur n'importe lequel de vos appareils virtuels Android.

exts
la source
137
Je ne comprends vraiment pas pourquoi Google rend les choses plus difficiles.
ACAkgul
1
@ AhmetCanAkgül Ce n'est pas le cas !!
Masquerade0097
1
dans mon cas, le chemin de classe «com.android.tools.build:gradle:2.3.2» fonctionne.
Prags
C'est certainement un peu une corvée.
Scott Fraley
13
@ACAkgul Oui, nous mettons à jour nos applications moins souvent maintenant, chaque fois que nous le faisons est une corvée énorme, une simple correction de bogue signifie que nous devons mettre à jour notre environnement et passer des heures (sinon des jours) pour passer à de nouvelles API et à un nouvel environnement. Les gens se moquent de Microsoft, maintenant je pense que les MS sont des anges!
albattran
91

Pour Android Studio 3, je dois mettre à jour deux fichiers pour corriger l'erreur: -

1. app / build.gradle

buildscript {
    repositories {
        jcenter()
        mavenCentral()
        maven {
            url 'https://maven.google.com/'
            name 'Google'
        }
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.1'
    }
}

2. app / gradle / wrapper / gradle-wrapper.properties

distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
srs
la source
Cela a fonctionné pour moi. Doit être marqué comme réponse correcte.
Tina J
1
@srs, veuillez expliquer pourquoi dans le bloc de dépendances gradle version 3.0.1, mais dans le fichier gradle-wrapper 4.1? Cela ne devrait-il pas être la même version?
Johnny Five
1
Intéressant, mais ne pouvait pas le faire dans un projet vraiment ancien. Ensuite, je viens de changer la version gradle non pas en 3.0.1 mais en 2.2.1 et cela a fonctionné.
Johnny Five
48

Tout d'abord, ouvrez le fichier build.gradle de votre module d'application .

Vérifiez le chemin de classe en fonction de la dépendance de votre projet. Sinon, changez la version de ce chemin de classe.

de:

classpath 'com.android.tools.build:gradle:1.0.0'

À:

classpath 'com.android.tools.build:gradle:2.3.2'

ou une version supérieure en fonction de votre niveau de studio Android.

Si son problème persiste, changez buildToolsVersion :

De:

buildToolsVersion '21.0.0'

À:

buildToolsVersion '25.0.0'

puis appuyez sur «Réessayer» et gradle se synchronisera automatiquement. Cela le résoudra.

amit pandya
la source
16

Dans mon cas, Android Studio 3.0.1, j'ai résolu le problème avec les deux étapes suivantes.

Étape 1: Modifier la version du plug-in Gradle dans build.gradle au niveau du projet

buildscript {
    repositories {
        jcenter()
        mavenCentral()
        maven {
            url 'https://maven.google.com/'
            name 'Google'
        }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.1'
    }
}

Étape 2: Changer la version de Gradle

distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
Harry Zhang
la source
11

J'ai également rencontré le même problème et j'ai obtenu une solution très similaire:

  1. Changer le chemin de classe en chemin de classe 'com.android.tools.build:gradle:2.3.2'

    Image après l'ajout du chemin de classe

  2. Un nouveau message indiquant de mettre à jour la version de l'outil de compilation, il vous suffit donc de cliquer sur ce message pour mettre à jour. Mettre à jour

Girish BR
la source
5
Veuillez coller votre code directement dans la réponse plutôt que d'utiliser des images.
Tom Aranda
10

Modifiez votre version Gradle ou mettez-la à jour

dependencies {
    classpath 'com.android.tools.build:gradle:3.0.1'
}

alt + entrée et choisissez "remplacer par une version spécifique".

Exel Staderlin
la source
5

Vous pouvez le faire en modifiant le fichier gradle.

 build.gradle > change
    dependencies {
    classpath 'com.android.tools.build:gradle:3.0.1'
    }
    gradle-wrapper.properties > update
    distributionUrl=https://services.gradle.org/distributions/gradle-4.6-all.zip
Mudassir Khan
la source
0

Si cette () méthode non prise en charge: BaseConfig.getApplicationIdSuffix Android Project est ancienne et que vous avez mis à jour Android Studio, ce que j'ai fait était simplement CLOSE PROJECT et l' ai exécuté à nouveau. Cela a résolu le problème pour moi. N'ajoute aucune dépendance ou autre comme décrit par les autres réponses.

itzo
la source
0

J'ai fait ce qui suit pour faire cette course sur AS 3.5

  1. app / build.gradle

    appliquer le plugin: 'com.android.application'

    android {compileSdkVersion 21 buildToolsVersion "25.0.0"

    defaultConfig {
        applicationId "com.example.android.mobileperf.render"
        minSdkVersion 14
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    }

dépendances {implémentation fileTree (dir: 'libs', include: ['* .jar']) implementation 'com.android.support:appcompat-v7:21.0.0' implementation 'com.squareup.picasso: picasso: 2.71828'}

  1. build.gradle

    buildscript {référentiels {jcenter () mavenCentral () maven {url ' https://maven.google.com/ ' name 'Google'} google ()} dépendances {classpath 'com.android.tools.build:gradle:3.0. 1 '}} allprojects {référentiels {jcenter () google ()}}

  2. gradle-wrapper.properties

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

Herman
la source