Nicht unterstützte Methode: BaseConfig.getApplicationIdSuffix ()


248

Ich lese also Android 6 für Programmierer: Ein App-gesteuerter Ansatz und die ersten beiden App-Beispiele. Ich hatte keine Probleme mit den Beispielen. Diesmal das FlagQuiz-Beispiel, wenn es in Android Studio 3.0 Canary-3 geladen wird. Ich erhalte diesen Fehler lässt mich das Projekt nicht bauen:

Fehler: Nicht unterstützte Methode: BaseConfig.getApplicationIdSuffix (). Die Version von Gradle, mit der Sie eine Verbindung herstellen, unterstützt diese Methode nicht. Um das Problem zu beheben, können Sie die Zielversion von Gradle, mit der Sie eine Verbindung herstellen, ändern / aktualisieren. Alternativ können Sie diese Ausnahme ignorieren und andere Informationen aus dem Modell lesen.

Sie können die Quelle von der Buchseite hier herunterladen , um sie mit derselben Codebasis zu testen, von der ich teste.

Antworten:


643

Okay, ich habe herausgefunden, wie ich dieses Problem beheben kann.

  • Öffnen Sie build.gradle und ändern Sie die Gradle-Version in die empfohlene Version:
    classpath 'com.android.tools.build:gradle:1.3.0'to
    classpath 'com.android.tools.build:gradle:2.3.2'
  • Schlagen 'Try Again'
  • Im 'Fix Gradle Wrapper and re-import project'Meldungsfeld wird "Klicken Sie darauf" angezeigt, da die minimale Gradle-Version lautet3.3
  • Ein neuer Fehler erscheint und sagt 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
  • Möglicherweise wird ein Fenster mit der Meldung " Android Gradle Plugin Update recommendedAktualisieren" angezeigt .

Jetzt sollte das Projekt auf jedem Ihrer virtuellen Android-Geräte ausgeführt werden können.


136
Ich verstehe wirklich nicht, warum Google die Dinge schwieriger macht.
ACAkgul

1
@ AhmetCanAkgül Das tut es nicht !!
Masquerade0097

1
In meinem Fall funktioniert der Klassenpfad 'com.android.tools.build:gradle:2.3.2'.
Prags

Es ist sicherlich ein bisschen mühsam.
Scott Fraley

13
@ACAkgul Ja, wir aktualisieren unsere Apps jetzt seltener. Jedes Mal, wenn wir dies tun, ist dies eine große Aufgabe. Eine einfache Fehlerbehebung bedeutet, dass wir unsere Umgebung aktualisieren und Stunden (wenn nicht Tage) aufwenden müssen, um zu neuen APIs und Umgebungen zu wechseln. Die Leute machen sich über Microsoft lustig, jetzt denke ich, dass MS Engel sind!
Albattran

91

Für Android Studio 3 muss ich zwei Dateien aktualisieren, um den Fehler zu beheben: -

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

Das hat bei mir funktioniert. Sollte als richtige Antwort markiert werden.
Tina J

1
@srs, bitte erklären Sie, warum in Abhängigkeiten Block Gradle Version 3.0.1, aber in Gradle-Wrapper-Datei 4.1? Sollte es nicht die gleiche Version sein?
Johnny Five

1
Interessant, konnte dies aber in einem wirklich alten Projekt nicht tun. Dann habe ich die Gradle-Version nicht auf 3.0.1, sondern auf 2.2.1 geändert und es hat funktioniert.
Johnny Five

48

Öffnen Sie zunächst Ihr Anwendungsmodul build.gradle Datei .

Überprüfen Sie den Klassenpfad entsprechend Ihrer Projektabhängigkeit. Wenn nicht, ändern Sie die Version dieses Klassenpfads.

von:

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

Zu:

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

oder höhere Version entsprechend Ihrem Gradle von Android Studio.

Wenn es immer noch ein Problem gibt, ändern Sie buildToolsVersion :

Von:

buildToolsVersion '21.0.0'

Zu:

buildToolsVersion '25.0.0'

Klicken Sie dann auf "Erneut versuchen" und gradle wird automatisch synchronisiert. Dies wird es lösen.


16

In meinem Fall, Android Studio 3.0.1, habe ich das Problem mit den folgenden zwei Schritten behoben.

Schritt 1: Ändern Sie die Version des Gradle-Plugins in build.gradle auf Projektebene

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

Schritt 2: Ändern Sie die Gradle-Version

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

11

Ich stand auch vor dem gleichen Problem und bekam eine sehr ähnliche Lösung:

  1. Ändern des Klassenpfads in Klassenpfad 'com.android.tools.build:gradle:2.3.2'

    Bild nach dem Hinzufügen des Klassenpfads

  2. Eine neue Nachricht, die auf die Version des Update Build Tools hinweist. Klicken Sie zum Aktualisieren einfach auf diese Nachricht. Aktualisieren


5
Bitte fügen Sie Ihren Code direkt in die Antwort ein, anstatt Bilder zu verwenden.
Tom Aranda

10

Ändern Sie Ihre Gradle-Version oder aktualisieren Sie sie

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

Alt + Enter und wählen Sie "Durch bestimmte Version ersetzen".


5

Sie können dies tun, indem Sie die Gradle-Datei ändern.

 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

0

Wenn diese () nicht unterstützte Methode: BaseConfig.getApplicationIdSuffix Android Project alt ist und Sie Android Studio aktualisiert haben, habe ich einfach PROJEKT SCHLIESSEN und erneut ausgeführt. Es hat das Problem für mich gelöst. Es wurden keine Abhängigkeiten oder was auch immer hinzugefügt, wie in anderen Antworten beschrieben.


0

Ich habe Folgendes getan, um dies auf AS 3.5 auszuführen

  1. app / build.gradle

    Plugin anwenden: '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'
        }
    }

    }}

Abhängigkeiten {Implementierung fileTree (dir: 'libs', include: ['* .jar']) Implementierung 'com.android.support:appcompat-v7:21.0.0' Implementierung 'com.squareup.picasso: picasso: 2.71828'}

  1. build.gradle

    Buildscript {Repositorys {jcenter () mavenCentral () maven {URL ' https://maven.google.com/ ' Name 'Google'} google ()} Abhängigkeiten {Klassenpfad 'com.android.tools.build:gradle:3.0. 1 '}} allprojects {repositories {jcenter () google ()}}

  2. gradle-wrapper.properties

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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.