._____. Beim Aufbau ist eine Warnung aufgetreten:.
registerResGeneratingTask is deprecated, use
registerGeneratedFolders(FileCollection)
Soweit ich weiß, werden Plugins, die als Klassenpfadabhängigkeiten hinzugefügt wurden, Probleme bereiten. Das heißt Firebase hatte ein Problem damit. Löffel und Flattern ebenfalls. Wenn Sie diese Google-Suche ausführen, werden viele GitHub-Repos mit einem Problem aufgedeckt, das über dieselbe Sache angesprochen wurde. Allen gemeinsam ist die Tatsache, dass es sich um ein Gradle-Plugin handelt. Stoff scheint auch eine Ursache zu sein, wie von Mate * erwähnt
Soweit ich weiß, liegt das Problem an einem oder mehreren Gradle-Plug-ins. Es kann auch von Ihrem Gradle-Code ausgelöst werden. Dies ist jedoch höchstwahrscheinlich nicht zutreffend, wenn es sich bei Ihrem Projekt um eine App und nicht um ein Gradle-Plugin handelt.
Und wie von Alex Cohn in einem Kommentar erwähnt, ist die Abwertung eine Warnung. In diesem Fall bedeutet dies, dass diese Funktion irgendwann entfernt wird. Angenommen, es ist ein Plugin (und nicht von Ihnen erstellt), können Sie es ignorieren. Zum Zeitpunkt des Entfernens sollten die meisten/alle wichtigen Plugins aktualisiert werden, um das Problem zu beheben.
Und wieder ist es eine Warnung, kein Fehler. Sie können es weiterhin ausführen und ignorieren, wenn Sie nichts gegen das Problem unternehmen können. Deaktivieren von z. Das Fabric * -Plugin ist übertrieben, da es immer noch funktioniert.
Ich benutze Fabric nicht selbst und Fabric ist nicht Open Source, daher weiß ich nicht, ob die Entwickler das Problem behoben haben oder nicht
TL; DR: Gradle-Plugins sind die Ursache. Es ist eine Warnung (kein Fehler), daher ist das Entfernen der Plugins, die das Problem verursachen, zu viel des Guten. Wenn Sie das Problem nicht beheben können, lassen Sie es in Ruhe, solange es derzeit nur veraltet ist (nicht entfernt).
Wenn Sie Firebase verwenden, gibt es eine spezielle Lösung dafür, die auch im Migrationshandbuch (weiter unten in diesem Beitrag verlinkt) erwähnt wird. schließe das Guaven-Modul aus
classpath ('com.google.firebase:firebase-plugins:1.1.0') {
exclude group: 'com.google.guava', module: 'guava-jdk5'
}
Das Problem selbst ist ziemlich schwer zu erkennen. Soweit ich weiß, gibt es kein einzelnes Problem, das es in allen von mir überprüften (und in dieser Antwort verlinkten) Plugins verursacht. Wenn Sie etwas codiert haben, das das Problem verursacht (und es ist möglich, es zu beheben; das Hinzufügen eines Gradle-Plugins eines Drittanbieters verursacht es nicht), können Sie versuchen, es zu beheben.
Nach allem, was ich über die eigentliche Ursache wissen kann, wird dies durch Aktualisieren der Gradle-Datei behoben (obwohl dies in der Spoon-Bibliothek durch Ändern einer Zeile in Bezug auf TestVariant
behoben wurde), indem den Themen im Gradle-Plugin 3.0 gefolgt wird .0 Migrationsanleitung.
Das Ganze wird behandelt durch die Entwicklerdokumentation , aber hier sind einige der Dinge, die meiner Meinung nach relevant sind, basierend auf den Pull-Anfragen, die für Projekte durchgeführt wurden, bei denen es ein Problem gab:
Neben der Aktualisierung der Gradle-Version und des Plugins müssen Sie unter repositories
auch das Repo google()
hinzufügen.
compile
ist jetzt implementation
oder api
, aber implementation
ist die empfohlene.
provided
ist compileOnly
und apk
ist runtimeOnly
androidTestCompile
wurde androidTestImplementation
und testCompile
-> testImplementation
Wenn Sie Aromen verwenden, müssen Sie Aromadimensionen verwenden (in den Dokumenten beschrieben).
Für Build-Typen müssen Sie Fallbacks einbeziehen, falls es eine Bibliothek gibt, die diesen Build-Typ nicht hat. Diese werden im Block profile
unter dem Block Android
definiert.
Falls noch nicht geschehen, muss zuerst das Gradle Plugin definiert werden. Wenn Sie keine anderen Klassenpfadabhängigkeiten haben, ist dies kein Problem. Wenn Sie dies dennoch tun, stellen Sie sicher, dass das Gradle-Plugin zuerst definiert wurde.
Wenn Sie testVariants
verwenden, stellen Sie sicher, dass Sie testedVariant
in der Klasse nicht aufrufen. Es scheint die Ursache für die Spoon-Bibliothek zu sein.
Dies sind, soweit ich weiß, einige der Änderungen, die zur Behebung des Problems vorgenommen wurden.
Durch die Aktualisierung auf die neueste Version des Fabric Gradle Plugins wird dieses Problem behoben.
Aus dem Änderungsprotokoll:
Ich benutze das Play Services Gradle Plugin com.google.gms:google-services
mit der Version 4.2.0
.
Im Quellcode können wir Folgendes sehen:
Das war für mich der Grund meiner Warnungen und kann nicht entfernt werden, bis das Plugin behoben ist. Das Thema ist hier
Wie von @Zoe erwähnt, kann dies auch von anderen Gradle Plugins stammen.
Beste
Das Problem wurde mit dem Google Services Plugin Version 4.3.0 behoben. (Gelöst mit this commit )
buildscript {
dependencies {
// Change version to 4.3.0
classpath 'com.google.gms:google-services:4.3.0'
}
}
Gefunden hier
In meinem Fall wurde dies durch eine nicht übereinstimmende Version der Android-Unterstützungsbibliotheken verursacht .. __ Ich habe alle Module auf die neueste Version (28.0.0) aktualisiert und das Problem gelöst.
Nach der korrekten Installation von Fabric wurde dieses Problem für mich behoben
import com.crashlytics.Android.Crashlytics;
import io.fabric.sdk.Android.Fabric;
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
Fabric.with(this, new Crashlytics());
}
}
build.gradle
buildscript {
repositories {
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
classpath 'io.fabric.tools:gradle:1.+'
}
}
apply plugin: 'com.Android.application'
apply plugin: 'io.fabric'
dependencies {
implementation 'com.crashlytics.sdk.Android:crashlytics:2.9.9'
}
repositories {
mavenCentral()
maven { url 'https://maven.fabric.io/public' }
}
Diese Warnung ist für mich verschwunden, wenn ich das Fabric Gradle Plugin deaktiviert habe. Bitte überprüfen Sie, ob Sie Fabric oder ein anderes Plugin verwenden, das für diese Warnung verantwortlich ist.