webentwicklung-frage-antwort-db.com.de

Android Gradle-Fehler bei Cordova/Ionic Build: Die unterstützte Mindestversion ist 2.14.1. Aktuelle Version ist 2.13

Dies ist eine Lösung für den obigen Fehler, den ich dokumentieren möchte. Ich habe andere ähnliche Beiträge gefunden, aber keiner hat beschrieben, wie dieser Fehler mit Cordova oder Ionic in Verbindung gebracht werden kann.

Wenn Sie nicht vorsichtig sind, kann es zu Abweichungen zwischen der von Android Studio verwendeten Version von Gradle und der von Cordova/cordova-Android im automatisch generierten Anwendungscode angegebenen Version von Gradle kommen. Wie du weißt, rennst du?

$ cordova platform add Android

(oder $ ionic platform add Android, wenn Sie eine Ionic-App erstellen) erstellt den nativen Anwendungscode im Projekt/Plattformen/Android. 

In diesem Ordner exportiert die Datei /the-project/platforms/Android/cordova/lib/builders/GradleBuilder.js eine Variable wie folgt:

var distributionUrl = process.env['CORDOVA_Android_GRADLE_DISTRIBUTION_URL'] || 'http\\://services.gradle.org/distributions/gradle-x.y-all.Zip';

Wo x und y davon abhingen, auf welcher Version von Cordova/Cordova-Android der native Anwendungscode erstellt wird. 

Wenn du rennst

$ cordova build Android

Die in distributionUrl var angegebene Version von Gradle ist die für den Build verwendete Version.

Nun kommt der knifflige Teil. Wenn Sie das Projekt in Android Studio importieren, erhalten Sie höchstwahrscheinlich eine Meldung, in der Sie dringend aufgefordert werden, Gradle auf eine neuere Version zu aktualisieren (siehe unten): 

 enter image description here Wenn Sie dies tun, lädt Android Studio eine neue Version von Gradle herunter, speichert sie lokal und konfiguriert das Projekt für die Verwendung der neu heruntergeladenen lokalen Gradle-Distribution. Dies ist die Radio-Option unterhalb der ausgewählten Option "Standard-Wrapper verwenden". , die ich jedoch abgewählt habe, weil dies Fehler verursachen würde.

 enter image description here

Dies wird zu Problemen führen, da Android Studio und Cordova nun versuchen, die Anwendung mit verschiedenen Gradle-Versionen zu erstellen, und es werden Build-Fehler in Android Studio und auch mit angezeigt 

$ cordova build Android

in der Befehlszeile. Die Lösung mit Cordova-Apps besteht darin, das Android Studio-Projekt immer auf "Standard-Gradle-Wrapper verwenden" zu setzen und die verführerischen Nachrichten für das Upgrade zu ignorieren. Wenn Sie eine neuere Version von Gradle verwenden möchten, können Sie jederzeit die distributionUrl-Variable in der oben genannten Datei ändern (Cordova rät jedoch dringend davon ab, Code im Plattformordner zu ändern, da er leicht überschrieben werden kann). Zum Zeitpunkt des Schreibens kann ich nicht sagen, ob es eine Möglichkeit gibt, die Gradle-Version auf der Website einzustellen 

$ cordova platform add Android

schritt, das ist der Zeitpunkt, zu dem Sie dies tun möchten, damit Sie den Code innerhalb des Projekts/der Plattformen niemals direkt ändern

20
cnanders

Für mich haben die folgenden Befehle das Problem gelöst:

cordova platform remove Android

cordova platform add Android

ionic build Android
17
zhannett

Ich würde das gerne als Kommentar hinterlassen, aber ich bin anscheinend nicht seriös genug ... 

Nachdem ich Ihre Dokumentation gelesen hatte, konnte ich mein Problem mit Ihrem Vorschlag, das Android Studio auf "Standard-Gradle-Wrapper verwenden" zu setzen, nicht beheben. Was ich gefunden habe ist, dass das Setzen der Sitzungsvariablen CORDOVA_Android_GRADLE_DISTRIBUTION_URL vor dem Bauen mich etwas weiter brachte:

[email protected]:$ export CORDOVA_Android_GRADLE_DISTRIBUTION_URL="https\://services.gradle.org/distributions/gradle-2.14.1-all.Zip"
[email protected]:$ cordova build Android

Als nächstes musste ich <project>/platforms/Android/build.gradle und <project>/platforms/Android/CordovaLib/build.gradle bearbeiten und sicherstellen, dass beide auf eine gültige Gradle-Plugin-Version hinweisen. 

dependencies {
    classpath 'com.Android.tools.build:gradle:2.2.0'
}

... und in <project>/platforms/Android/CordovaLib/build.gradle habe ich jcenter in den Repositories hinzugefügt (weil maven.org scheinbar nicht 2.2.0 hatte)

repositories {
    mavenCentral();
    jcenter()
}

Ich konnte damals bauen.

10
Bungler

Die Umstellung auf "Standard-Gradle-Wrapper verwenden" funktionierte bei meinem ionic 1-Projekt nicht, aber das Laufen

ionic platform remove Android
ionic platform add Android

Arbeitete für mich

8
Chuck Holbrook

sie können den Wert in Platform/Android/cordova/lib/builders/GradleBuilder.js ändern

wenn Sie den Wert ändern, den Sie geändert haben, wird er bei der Neuinstallation der Android-Plattform durch den neuesten Zip-Code ersetzt

var distributionUrl = process.env['CORDOVA_Android_GRADLE_DISTRIBUTION_URL'] || 'https\\://services.gradle.org/distributions/gradle-2.14.1-all.Zip';

oder wie die anderen ans

export CORDOVA_Android_GRADLE_DISTRIBUTION_URL="https\://services.gradle.org/distributions/gradle-2.14.1-all.Zip"
5
Zam

Eine andere Möglichkeit, ein Problem zu beheben, das auch unter Windows funktioniert:

cordova build Android --release --CORDOVA_Android_GRADLE_DISTRIBUTION_URL=https\://services.gradle.org/distributions/gradle-2.14.1-all.Zip
3

Ich möchte die @bungler-Antwort erweitern. 

Ich wurde mit der Version von Gradle und der kompatiblen Version des Android-Plugins für Gradle verwechselt. Der folgende Link enthält die Liste der kompatiblen Versionszuordnungen:

Gradle vs Android Plugin für Gradle - Liste der kompatiblen Versionen

Für die aktuelle Version von gradle 3.3+ ist die kompatible Version des Android-Plugins 2.3.3.

Die endgültigen Einstellungen sehen also wie folgt aus:

Für Mac

SCHRITT 1: Fügen Sie Folgendes in env-Variablen hinzu:

option a) Aktualisierungsvariable:

export CORDOVA_Android_GRADLE_DISTRIBUTION_URL="https\://services.gradle.org/distributions/gradle-3.3-all.Zip"

oder 

option b) Sie können die Gradle Datei herunterladen und in <project>/platforms/Android/gradle/ platzieren und die env-Variable aktualisieren:

export CORDOVA_Android_GRADLE_DISTRIBUTION_URL="../gradle-3.3-all.Zip"

SCHRITT 2: Update folgt in <project>/platforms/Android/CordovaLib/build.gradle

buildscript {
  ...
  dependencies {
    classpath 'com.Android.tools.build:gradle:2.3.3'
  }
}

Das hat bei mir funktioniert. 

2
Maverick09

Für folge fehler: 

Minimale unterstützte Gradle-Version ist 4.1. Aktuelle Version ist 3.3. Ob Versuchen Sie, mit dem Gradle-Wrapper die DistributionUrl in .__ zu bearbeiten. E:\ionic\MyIonicProject\gr adle\wrapper\gradle-wrapper.properties auf gradle-4.1-all.Zip für gradle 4.1

Dieser Befehl hat für mich funktioniert:

ionic cordova platform update Android
1
EmRa228

Im Anschluss an die Antwort von Chuck Holbrook bekomme ich mit der folgenden Lösung eine Fehlermeldung, wenn ich erneut versuche, die Android-Plattform hinzuzufügen, dass sie bereits hinzugefügt wurde. 

ionic cordova platform remove Android
ionic cordova platform add Android

Meine Arbeitslösung: 

ionic cordova platform remove Android
ionic cordova platform check Android
ionic cordova platform add Android 
0
Peter Edwards