Immer noch Warnung: Die Konfiguration 'Kompilieren' ist veraltet und wurde durch 'Implementierung' ersetzt.


332

Ich habe jedes Vorkommen von compiledurch implementationin meinem Projekt ersetzt build.gradle, aber ich erhalte immer noch diese Warnung:

Geben Sie hier die Bildbeschreibung ein

Ich habe versucht, im gesamten Projekt nach "Kompilieren" zu suchen, aber es wurde keine Übereinstimmung gefunden. Was könnte die Ursache sein?


Verwenden Sie eine lokale Bibliothek, die noch 'Kompilieren' verwendet?
Devsil

@ Devsil möglicherweise ... aber wie kann ich herausfinden, welche? Ich habe versucht, einen Pfad in Pfad im gesamten Projekt zu finden, konnte aber kein Vorkommen von compile..
Rob

2
Wenn Sie eine lokale Bibliothek verwenden, wird die Datei gradle.build im Projekt-Viewer auf der rechten Seite Ihres Android Studio-Fensters angezeigt. In dieser build.gradle-Datei kann sie im Gegensatz zur Implementierung eine "Kompilierung" enthalten. Wenn eine build.gradle-Datei, die Sie dort sehen, diese nicht enthält. Möglicherweise handelt es sich um eine Bibliothek, die Sie verwenden und die nicht lokal ist, sodass Sie keinen Zugriff darauf haben, dies zu ändern. Diese Warnung kann also vorerst einfach ignoriert werden.
Devsil

1
Gradle sollte die Zeilennummer
angeben,

versuchen Sie es: stackoverflow.com/questions/48623244/… und Failed to resolve: android.arch.persistence.room:runtime:1.1.1 Open File Show in Project Structure dialogversuchen Sie, die Version auf1.0.0
Saeid

Antworten:


496

Ich habe com.google.gms:google-servicesvon 3.1.1auf aktualisiert 3.2.0und die Warnung wird nicht mehr angezeigt.

buildscript {

    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.0'

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

    classpath 'com.google.gms:google-services:3.2.0'
    }
}

1
Die Konfiguration 'Kompilieren' ist veraltet und wurde durch 'Implementierung' ersetzt. Es wird Ende 2018 entfernt. Um klar zu sein, verwende ich keine Google Service-Abhängigkeiten. {Classpath 'com.android.tools.build:gradle:3.1.0'}
Amit_android

Ich erhalte die Meldung "com.google.gms: google-services: 3.2.0 konnte nicht gefunden werden." wenn ich das versuche. Update: Durch manuelles Ändern wurde eine Flusenwarnung ausgelöst, als ich es wieder auf 3.1.1 änderte. Dann Alt + Eingabetaste, um das Update anzuwenden, wurde es automatisch in com.google.gms: google-services: 3.2.0 ohne Fehler bei der Synchronisierung geändert. Ich bin mir nicht sicher, was der Unterschied war, aber es ist frustrierend.
jwehrle

Okay, ich glaube ich verstehe den Unterschied. Ich hatte den Klassen- und Modul-Buildpfad build.gradle gms auf Version 3.2.0 geändert. Es ist der Modulwechsel, der das Problem verursacht hat. Ändern Sie nur die Project build.gradle gms-Klassenpfadversion.
jwehrle

Mir fehlte auch jcenter () repo! Das Projekt war sehr alt und hatte dieses Repo nicht enthalten!
Yani2000

Meinen Sie damit, dass ich diese Zeile einfach manuell zur Datei hinzufügen sollte?
hellogoodnight

125

Ich habe dieselbe Warnung für com.google.gms: google-services.

Die Lösung besteht darin , den Klassenpfad com.google.gms: google-services auf den Klassenpfad 'com.google.gms: google-services: 3.2.0' in der Datei in build.gradle zu aktualisieren. Projekt:

Geben Sie hier die Bildbeschreibung ein

buildscript {
    repositories {
        jcenter()
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.0'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
        classpath 'com.google.gms:google-services:3.2.0'
    }
}

allprojects {
    repositories {
        jcenter()
        google()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

In Android Studio Version 3.1 wird das entsprechende Wort durch die Implementierung ersetzt

Abhängigkeiten mit Warnung in Android Studio 3.1

dependencies {
            compile fileTree(dir: 'libs', include: ['*.jar'])
            compile 'com.android.support:appcompat-v7:27.1.0'
            compile 'com.android.support.constraint:constraint-layout:1.0.2'
            testImplementation 'junit:junit:4.12'
            androidTestImplementation 'com.android.support.test:runner:1.0.1'
            androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
    }

Abhängigkeiten OK in Android Studio 3.1

    dependencies {
            implementation fileTree(dir: 'libs', include: ['*.jar'])
            implementation 'com.android.support:appcompat-v7:27.1.0'
            implementation 'com.android.support.constraint:constraint-layout:1.0.2'
            testImplementation 'junit:junit:4.12'
            androidTestImplementation 'com.android.support.test:runner:1.0.1'
            androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'

    }

Gradel generiert mit Android Studio 3.1 für neues Projekt.

Gradel generiert mit Android Studio 3.1 für neues Projekt.

Besuchen Sie https://docs.gradle.org/current/userguide/dependency_management_for_java_projects.html

Weitere Informationen finden Sie unter https://docs.gradle.org/current/userguide/declaring_dependencies.html


Beachten Sie, dass "testCompile" in "testImplementation" geändert wird.
AJW

Die meisten und auch die beliebtesten Antworten konzentrieren sich auf com.google.gms: google-services, aber es geht darum, den alten Namensstil in beiden Gradle-Dateien zu
aktualisieren

32

Ich habe com.google.gms: google-services von 3.2.0 auf 3.2.1 aktualisiert und die Warnung wurde nicht mehr angezeigt.

 buildscript {

    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.1'
        classpath 'com.google.gms:google-services:3.2.1'

    }
}

Sie müssen nur die Version ändern, so wie ich diese 'com.google.gms: google-services: 3.2.0' habe. Sie müssen nur 3.2.0 durch 3.2.1 ersetzen.
Prateek218

Danke, ich hatte die falsche Klasse aktualisiert, deshalb habe ich den Fehler bekommen.
Jhorra

2
Ich habe die Version classpath 'com.google.gms:google-services:4.1.0'nicht am meisten aktualisiert, aber ja, es ist größer als 3.2.0. Noch keine Auflösung!
Sud007

@ Sud007 können Sie ein wenig erklären, mit welchem ​​Problem Sie konfrontiert sind, oder Ihre build.gradle (Projektebene)
Prateek218

22

Die Verwendung der aktuell neuesten Version der Google GMS-Dienste hat das Problem für mich behoben.

In der Projektebene build.gradle:

buildscript {
    ...
    dependencies {
        classpath 'com.google.gms:google-services:3.2.1'
        ...  
    }
}

18

Öffnen Sie Ihre build.gradle-Datei hier:

Geben Sie hier die Bildbeschreibung ein

Dies ist die alte Art, die Abhängigkeitsbibliotheken zu schreiben (für Gradle Version 2 und niedriger):

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile files('libs/volley.jar')
    compile 'com.android.support:support-v4:21.+'
}

Dies ist die neue (rechte) Methode zum Importieren der Abhängigkeiten für Gradle Version 3:

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    testImplementation 'junit:junit:4.12'
    implementation files('libs/volley.jar')
    implementation 'com.android.support:support-v4:21.+'
}

1
Danke Freund! Dies scheint die aktuellste Antwort hier ab Januar 2019 zu sein
NaturalBornCamper

Diese Antwort ist hilfreich für diejenigen, die zum ersten Mal mit diesem Problem konfrontiert sind. OP hat jedoch eine andere Frage, die besagt, dass auch nach diesen Änderungen eine Fehlermeldung angezeigt wird.
Sud007

13

Antwort von Google: https://issuetracker.google.com/issues/74048134

Es würde noch einige Abhängigkeiten geben, die kompilieren. Überprüfen Sie Ihre Anwendungsabhängigkeiten und transitiven Abhängigkeiten sorgfältig.


1
Ich habe ALLE Abhängigkeiten in ALLEN build.gradles für mein Projekt entfernt und erhalte immer noch den Fehler
siehe

3
EDIT: Es wurde durch Realm verursacht, mit älterer Version
siehe

7

https://issuetracker.google.com/issues/72479188 gibt an, dass Plugins manchmal Abhängigkeiten zum "Kompilieren" einführen können, und das löst die Warnung aus. Wahrscheinlich ist es am einfachsten, dieses Problem zu erkennen und zu warten, bis es behoben ist, um herauszufinden, welche Plugins das Problem verursachen.


6

Die Leitung muss nicht entfernt werden. Aktualisieren Sie, wie Jkrevis schrieb, die Datei com.google.gms: google-services auf 3.2.0, und die Warnungen werden gestoppt.


1
Haben Sie jedes Vorkommen von "Kompilieren" durch "Implementieren" in build.gradle (Modul: App) Ihres Projekts ersetzt und die Datei com.google.gms: google-services in build.gradle (Projekt) auf 3.2.0 aktualisiert?
Tom

6

Ich stoße auf dieses Problem ohne zu verwenden com.google.gms:google-services. Die Lösung zur Lösung dieses Problems wie folgt:

  1. Überprüfen Sie die build.gradleDateien aller Projekte und Module. Oder einfach das globale Suchschlüsselwort "kompilieren", um herauszufinden, wo diese Warnung verursacht wird.
  2. Wenn die obige Methode diese Warnung nicht lösen kann, verwenden Sie den CLI-Befehl und ./gradlew assembleDebug -d > gradle.log
    drucken Sie Detail-Debug-Informationen in eine Datei mit dem Namen gradle.logoder einer anderen Datei , da die Informationen zu umfangreich sind. Suchen Sie dann nach dem Wort "WARNUNG", um die Position zu finden. In der gradle.logRegel können Sie herausfinden, welche Abhängigkeit oder welches Plugin die Warnung verursacht.

2
Ich denke, das ist die allgemeine Lösung. Das Problem kann durch eine oder mehrere Ihrer Abhängigkeiten verursacht werden
Rasmusob

5

In meinem Fall liegt das Problem an der Realm-Bibliothek, nachdem ich sie auf die neueste Version (5.1.0) von Realm aktualisiert habe!

Hier ist das funktionierende Gradle-Skript:

buildscript {
repositories {
    jcenter()
    google()
}

dependencies {
    classpath 'com.android.tools.build:gradle:3.1.2'
    classpath "io.realm:realm-gradle-plugin:5.1.0"
    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
    classpath 'com.google.gms:google-services:3.2.1'
  }
}

3

Nur das Aktualisieren der Google-Service-Version hat bei mir nicht funktioniert.

  • Stellen Sie zunächst sicher, dass alle Ihre Abhängigkeiten compiledurch ersetzt sind implementation.
  • Aktualisieren Sie alle Abhängigkeiten in Ihrem Projekt. Denn wenn eine Ihrer Abhängigkeiten besteht, zeigt compileIhr Projekt diesen Fehler an. Aktualisieren Sie also alle Abhängigkeitsversionen.

2

Gehen Sie zu Ihrer build.gradle-Datei auf Projektebene. Dort werden die folgenden Zeilen hervorgehoben

dependencies {
    classpath 'com.android.tools.build:gradle:3.1.4'  //place your cursor over here 
    //and hit alt+enter and it will show you the appropriate version to select


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

    classpath 'com.google.gms:google-services:4.0.2' //the same as previously
}

2

In meinem Fall war es eine alte Abhängigkeit, die compile für die transitiven Abhängigkeiten verwendete: com.jakewharton.hugo

Nachdem ich es aus meinem Gradle entfernt hatte, wurde es kompiliert.


1

Die Problemumgehung zur Lösung dieses Problems bestand für mich darin, dass ich eine ältere Version von Gradle verwendet habe, die hier zu finden ist :

Ich habe die Version gradle-3.0-rc-1-src verwendet, aber andere funktionieren möglicherweise auch, obwohl sie wahrscheinlich nicht neuer als die Version 3.0 sein sollte.

Extrahieren Sie zuerst die Zip-Datei an eine beliebige Stelle.

Gehen Sie dann zu Datei -> Einstellungen -> Erstellen, Ausführen, Bereitstellen -> Gradle und ändern Sie die Einstellung in Lokale Gradle-Verteilung verwenden. Stellen Sie danach sicher, dass das Gradle Home-Feld auf das Gradle-Verzeichnis in dem Verzeichnis zeigt, in das Sie gerade entpackt haben.

Erstellen Sie das Projekt neu und alles sollte in Ordnung sein.


0

Ich habe versucht, die Google GMS-Dienste auf die neuesten com.google.gms:google-services:3.2.1in Android Studio 3.0.1 zu ändern, aber die Warnung bleibt bestehen.

Wie durch den Compiler empfohlen, änderte ich alle compileAbhängigkeiten implementationund testCompilezu testImplementationwie dieses ..

dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support:mediarouter-v7:27.1.1'
implementation 'com.android.support:design:27.1.1'
implementation 'com.google.firebase:firebase-ads:12.0.1'
implementation 'com.google.firebase:firebase-crash:12.0.1'
implementation 'com.google.firebase:firebase-core:12.0.1'
implementation 'com.google.firebase:firebase-messaging:12.0.1'
implementation 'com.google.firebase:firebase-perf:12.0.1'
implementation 'com.google.firebase:firebase-appindexing:12.0.1'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
testImplementation 'junit:junit:4.12'
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
}

Und schließlich wird die Warnung entfernt!


0

Sie können diese zwei Optionen ausführen:

  1. Fügen Sie den Klassenpfad 'com.google.gms: google-services: 3.2.0' in Ihr Projekt: build.gradle-Abhängigkeiten und hinzu
  2. Ersetzen Sie Ihr Modul: build.gradle in Abhängigkeit von der Kompilierung mit der Implementierung, und Sie erhalten keine Warnmeldungen.

0

Fügen Sie einfach von build.gradlevon hinzubuild script

classpath 'com.google.gms:google-services:3.2.0'

und alle Abhängigkeiten "compile"ersetzen zu "implementation".

das hat bei mir funktioniert.


Beachten Sie, dass Sie classpathes innerhalb eines buildscriptBlocks verwenden müssen , wenn Sie es verwenden . Darüber hinaus kann man nicht implementationinnerhalb eines buildscriptBlocks verwenden.
ChumiestBucket

0

Die aktuelle Version ist 4.2.0 :

Buildscript {

repositories {
    google()
    jcenter()
}
dependencies {
    classpath 'com.android.tools.build:gradle:3.4.0'

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
    classpath 'com.google.gms:google-services:4.2.0'
}

}}


0

Für mich hat das Ändern der Kompilierung zur Implementierung das Problem behoben

Vor

compile 'androidx.recyclerview:recyclerview:1.0.0'
compile 'androidx.cardview:cardview:1.0.0'
//Retrofit Dependencies
compile 'com.squareup.retrofit2:retrofit:2.1.0'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'

Nach

implementation 'androidx.recyclerview:recyclerview:1.0.0'
implementation 'androidx.cardview:cardview:1.0.0'
//Retrofit Dependencies
implementation 'com.squareup.retrofit2:retrofit:2.1.0'
implementation 'com.squareup.retrofit2:converter-gson:2.1.0'

-2

Hoffe, dass Sie von build.gradle (App) betroffen sind. Befolgen Sie in diesem Fall diesen Schritt

Ersetzen Sie compile durch androidTestImplementation in build.gradle

androidTestImplementation 'com.android.support:appcompat-v7:27.1.1'
androidTestImplementation 'com.android.support:design:27.1.1'

so einfach ! hoffe, das wird sich lösen


-3

In meinem Fall war das Problem das Gradle-Plugin für Google-Dienste mit der folgenden Zeile in der Gradle-Datei:

Plugin anwenden: 'com.google.gms.google-services'

Durch Entfernen dieses Problems wurde das Problem behoben


-7

Gehe zu dir build.gradle (App-Level)

build.gradle Modul App

und ersetzen Sie das Wort "kompilieren" durch "Implementierung"

es wird 100% funktionieren


6
Diese Antwort ist nicht nützlich. Das OP hat bereits erklärt, dass dies getan wurde, daher kann es unmöglich helfen.
NightOwl888

1
Ich hatte das gleiche Problem, ich konnte meine App nicht generieren. Diese Antwort löste mein Problem
Ayoub

Dies ist nicht die gleiche Situation, OP hat bereits angegeben, dass er dies getan hat (ich bin auch im selben Boot), es liegt an Abhängigkeiten
ElliotM

OP sagte: "Ich habe jedes Auftreten von Kompilieren durch Implementierung ersetzt."
Mapo
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.