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.

exts
quelle

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.

exts
quelle
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
srs
quelle
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.

Amit Pandya
quelle
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
Harry Zhang
quelle
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

Girish BR
quelle
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".

Exel Staderlin
quelle
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
Mudassir Khan
quelle
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.

itzo
quelle
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

Ihr Mann
quelle