In diesem Build wurden veraltete Gradle-Funktionen verwendet, sodass es nicht mit Gradle 5.0 kompatibel ist


81

Ich habe einen Gradle FAILURE:

..."Deprecated Gradle features were used in this build, making it incompatible with Gradle 5.0."

Fallschilderung:

  • Der nächsten Codebibliothek sind die nächsten Bibliotheken beigefügt:

APP / build.gradle

    //(Required) Writing and executing Unit Tests on the JUnit Platform 
testImplementation "org.junit.jupiter:junit-jupiter-api:5.2.0"
testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:5.2.0"
    // (Optional) If you need "Parameterized Tests"
testImplementation "org.junit.jupiter:junit-jupiter-params:5.2.0"
    // (Optional) If you also have JUnit 4-based tests
testImplementation "junit:junit:4.12"
testRuntimeOnly "org.junit.vintage:junit-vintage-engine:5.2.0"

testImplementation "io.mockk:mockk:1.8.5"
  • Die gradle-wrapper.properties wurden aktualisiert

    DistributionUrl = https .... gradle- 4.4-all .zip bis 4.7-all

  • nach all dem wurde gradle erfolg aufgebaut

  • hat den Test erstellt

    @TestInstance(TestInstance.Lifecycle.PER_CLASS)
      class TestClass {
    
      @Test
      internal fun testName() {
        Assert.assertEquals(2, 1 + 1)
      }
    }
    
  • hat den Test ausgeführt und die Meldung FAILURE erhalten. Geben Sie hier die Bildbeschreibung ein

  • Führen Sie den Gradle-Build mit einem Befehlszeilenargument aus, um festzustellen ./gradlew --warning-mode=all, was genau die veralteten Funktionen sind. Geben Sie hier die Bildbeschreibung ein

Infolgedessen konnte ich die App nicht erstellen und habe die Meldung FAILURE: erhalten.


1
Das ist kein Misserfolg. Die App wird immer noch kompiliert, oder?
EpicPandaForce

1
Die App wird mit derselben Fehlermeldung kompiliert. :-(
Philipp Buhaievskiy

2
Das ist kein Misserfolg. Es wäre ein Fehler, wenn die App nicht kompiliert würde. Das ist bestenfalls eine Warnung .
EpicPandaForce

@ EpicPandaForce leider ist das eine Fehlermeldung, wie ich erwähnt habe. Bei der Frage geht es nicht darum, wie die Botschaft zu interpretieren ist, sondern darum, wie ich Ihre Wirkung schätze.
Philipp Buhaievskiy

Antworten:


67

Führen Sie den Gradle-Build mit einem Befehlszeilenargument aus, um festzustellen --warning-mode=all, was genau die veralteten Features sind.

Sie erhalten eine detaillierte Beschreibung der gefundenen Probleme mit Links zu den Gradle-Dokumenten, um Anweisungen zum Beheben Ihres Builds zu erhalten.

Darüber hinaus --stacktracekönnen Sie auch feststellen, woher die Warnung stammt, wenn sie durch veralteten Code in einem der Plugins und nicht in Ihrem Build-Skript ausgelöst wird.


Ich habe die Beschreibung des Problems anhand dieses Vorschlags aktualisiert.
Philipp Buhaievskiy

12
Beim Laufen react-native run-android --warning-mode allbekomme icherror: unknown option --warning-mode'
Yokhen

12
Versuchen Sie zu laufengradle build --warning-mode=all
Jordan Daniels

13

Probier diese

cd android && ./gradlew clean && ./gradlew :app:bundleRelease

Danke, können Sie bitte erklären, warum diese ./gradlew: app: bundleRelease funktioniert und diese ./gradlew bundleRelease nicht.
Atikur Rahman Sabuj

perfecct hat für mich an meinem Cordova-9.0-Projekt gearbeitet: D
Minigeek

10

Ich habe diesen Fehler erhalten. Es stellte sich heraus, dass es nur passiert ist, als ich die RN-Caches vollständig bereinigt habe (ziemlich aufwändiger Prozess) und dann einen Release-Build erstellt habe.

Wenn ich die Caches bereinigt, einen Debug-Build und dann einen Release-Build erstellt habe, hat alles funktioniert. Etwas besorgniserregend, funktioniert aber.

Hinweis: Mein Befehl zum Reinigen lautet ...

rm -r android/build ; rm -r android/app/src/release/res ; rm -r android/app/build/intermediates ; watchman watch-del-all ; rm -rf $TMPDIR/react-* ; npm start -- --reset-cache


4

In meinem Fall habe ich die build.gradleDatei aktualisiert und die classpathneueste Version von 3.5.2bis erstellt3.6.3

dependencies {
        classpath("com.android.tools.build:gradle:3.6.3") 
    }

3

Aktualisieren Sie Ihre Abhängigkeiten von Drittanbietern. Zum Beispiel habe ich die Abhängigkeit von implementation 'com.github.ybq:Android-SpinKit:1.1.0' bis aktualisiert implementation 'com.github.ybq:Android-SpinKit:1.2.0'. und in meinem Fall wurde das Problem gelöst.


Folgen Sie dem Vorschlag des Hotkeys für eine genaue detaillierte Beschreibung
Hiren

Dies war der Fehler und ich aktualisiere die Gradle-Version und versuche jeden möglichen Schritt. :(
Anshul1507

2

Legen Sie den DistributionUrl-Pfad in Gradle-Wrapper-Eigenschaftendateien wie folgt fest:

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


Mein Absolvent hatte diese Zeile .. .distributionUrl = https \: //services.gradle.org/distributions/gradle-4.8.1-bin.zip Geändert in und es funktionierte. DistributionUrl = services.gradle.org/distributions/gradle-4.10.2-all.zip
Aaron Medvick

2

Wichtig - Beantworten Sie die Arbeit nur für das Terminal REACT-NATIVE VS CODE

Im VisualStudio-Code müssen Sie wie folgt ausführen, dann wird diese Warnung weggelassen.

React-Native Run-Android-Warnmodus = alle

Wenn Sie unten ausführen, wird der Fehler im Terminal angezeigt. Beim Ausführen von React-Native Run-Android - Warnmodus wird nur der Fehler angezeigt: Unbekannte Option - Warnmodus '


1

Lösung für das Problem: In diesem Build wurden veraltete Gradle-Funktionen verwendet, die es mit Gradle 6.0 nicht kompatibel machen. android studio Diese bereitgestellte Lösung hat bei mir funktioniert.

Ändern Sie zuerst den Klassenpfad in den Abhängigkeiten von build.gradle Ihres Projekts. Von: classpath 'com.android.tools.build:gradle:3.3.1' Bis: classpath 'com.android.tools.build:gradle:3.6.1'

Nehmen Sie dann Änderungen in der Datei gradle-wrapper.properties vor. Diese Datei befindet sich im Ordner gradle> wrapper des Projekts. Von: distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip Bis: distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip

Dann synchronisiere deinen Gradle.


0

Schließlich wurde beschlossen, Junit 5 auf Junit 4 herunterzustufen und die Testumgebung neu zu erstellen.


Wie du es getan hast?
Pratik Butani

Pratik denke daran, vorerst, sechs Monate später, nehme ich an, dass sich die Umstände dieses Problems geändert haben. Ich würde Ihnen raten, von Grund auf zu untersuchen, ob JUnit 5 als Testinstrument geeignet ist.
Philipp Buhaievskiy

0

Bei einem SpringBoot-Projekt mit IntelliJ und Gradle wurde beim Ausführen meines Integrationstests die Warnung "In diesem Build wurden veraltete Gradle-Funktionen verwendet, sodass es nicht mit Gradle 5.0 kompatibel ist" angezeigt. Das Problem wurde gelöst: - Gehen Sie zu: Datei> Einstellungen> Erstellen, Ausführen, Bereitstellen - Auswählen für "Erstellen und Ausführen mit": Intellij IDEA (anstelle von "Gradle") - Gleiches gilt für "Ausführen von Tests mit". Dies wurde nicht erklärt warum Gradle die Warnung anzeigt, aber damit kann ich den Test durchführen und meine Arbeit fortsetzen.


0

Diese Art von Fehler wurde nach der Migration auf AndroidX behoben

  • Gehen Sie zu Refactor ---> Migrieren Sie zu AndroidX

0

Die folgende Lösung hat mir geholfen, da ich auch die gleiche Warnung erhielt. Versuchen Sie in Ihrer Gradle-Datei auf Projektebene, die Gradle-Version im Klassenpfad zu ändern

classpath "com.android.tools.build:gradle:3.6.0" to
classpath "com.android.tools.build:gradle:4.0.1"

0

Wenn Sie react-native verwenden , versuchen Sie bitte zuerst die folgenden Befehle, bevor Sie Ihr Projekt ausführen:

  1. npm install --save-dev jetifier
  2. npx jetify

Führen Sie nun Ihr Projekt erneut aus. Hoffe das wird funktionieren.

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.