Beim Ausführen cordova build android --buildConfig xxxx --release
wird folgende Fehlermeldung angezeigt:
ERROR: In <declare-styleable> FontFamilyFont, unable to find attribute android:fontVariationSettings
ERROR: In <declare-styleable> FontFamilyFont, unable to find attribute android:ttcIndex
Das Seltsame ist, dass ich zwei MacOS-Maschinen für die Kompilierung verwende und diesen Fehler nur auf einer von ihnen für denselben Code erhalte.
Hier ist die Ausgabe von ./gradlew cdvPrintProps
Ich bekomme auf den beiden Maschinen:
:cdvPrintProps
cdvCompileSdkVersion=26
cdvBuildToolsVersion=27.0.3
cdvVersionCode=null
cdvMinSdkVersion=21
cdvBuildMultipleApks=true
cdvReleaseSigningPropertiesFile=release-signing.properties
cdvDebugSigningPropertiesFile=null
cdvBuildArch=null
computedVersionCode=152045989
computedArmv7VersionCode=1520459892
computedX86VersionCode=1520459894
Unten ist die Liste der verwendeten Plugins:
$ cordova plugins list
cordova-custom-config 5.0.2 "cordova-custom-config"
cordova-fabric-plugin 1.1.10 "cordova-fabric-plugin"
cordova-open-native-settings 1.5.0 "Native settings"
cordova-plugin-app-event 1.2.1 "Application Events"
cordova-plugin-app-version 0.1.9 "AppVersion"
cordova-plugin-camera 2.4.1 "Camera"
cordova-plugin-compat 1.2.0 "Compat"
cordova-plugin-console 1.1.0 "Console"
cordova-plugin-crosswalk-webview 2.4.0 "Crosswalk WebView Engine"
cordova-plugin-datepicker 0.9.2 "DatePicker"
cordova-plugin-device 2.0.1 "Device"
cordova-plugin-email 1.2.7 "EmailComposer"
cordova-plugin-file 4.3.3 "File"
cordova-plugin-file-transfer 1.6.3 "File Transfer"
cordova-plugin-inappbrowser 1.7.2 "InAppBrowser"
cordova-plugin-network-information 1.3.4 "Network Information"
cordova-plugin-secure-storage 2.6.8 "SecureStorage"
cordova-plugin-splashscreen 4.1.0 "Splashscreen"
cordova-plugin-statusbar 2.4.1 "StatusBar"
cordova-plugin-whitelist 1.3.3 "Whitelist"
cordova.plugins.diagnostic 3.9.2 "Diagnostic"
de.appplant.cordova.plugin.local-notification 0.8.5 "LocalNotification"
ionic-plugin-keyboard 2.2.1 "Keyboard"
Wie kann ich dieses Problem beheben?
Antworten:
Fügen Sie einfach Folgendes in build-extras.gradle ein
quelle
build-extras.gradle
in meinem Projektstamm Code hinzugefügt, um ihn inhooks\after_platform_add
gist.github.com/charlesbedrosian/…Google hat die neue Version 28.0.0-alpha1 von com.android.support:support-v4 veröffentlicht, die zwei neue Attribute hinzufügt (android: fontVariationSettings und android: ttcIndex). Einige der Plugins verwenden die neuesten Android-Unterstützungsbibliotheken, was zu unerwünschten Inkompatibilitäten führt.
Option 1: Installieren Sie das Cordova-Android-Support-Gradle-Release- Plugin.
Gut dokumentiertes Plugin, das "verschiedene Versionen der von anderen Plugins angegebenen Android-Support-Bibliotheken an einer bestimmten Version ausrichtet". Ohne destruktives Verhalten getestet.
In der Dokumentation finden Sie alle Optionen: Readme
Option 2 : Fügen Sie das nächste Code-Snippet in build.gradle unter platform / android hinzu
Warnung: Der Code in build.gradle wird überschrieben, wenn Sie die Android-Plattform entfernen / hinzufügen. Wenn Sie das Plugin aus irgendeinem Grund nicht verwenden möchten oder irgendwie nicht für Sie funktionieren, erstellen Sie stattdessen einen Hook und überschreiben Sie die Datei jedes Mal. Überprüfen Sie den 2. Kommentar hier .
Wenn das Problem weiterhin besteht, können Sie Folgendes versuchen:
ODER
Stellen Sie sicher, dass auf dem getesteten Gerät keine frühere Version der App installiert ist, da beim Versuch, die vorhandene Version herunterzustufen, ein mehrdeutiger Fehler angezeigt wird: "INSTALL_FAILED_VERSION_DOWNGRADE" und "UnhandledPromiseRejectionWarning: Nicht behandelte Ablehnung von Versprechungen"
quelle
Der gleiche Fehler passiert mir. Anscheinend wurde eine neue Version der
com.android.support:support-v4
Bibliothek veröffentlicht, und das Plugin, das ich verwende, wirdcom.android.support:support-v4:+
als Abhängigkeit in definiertplugin.xml
. Das+
Zeichen bedeutet, dass es die neueste Version (28.0.0) erhält, die mit anderen Plugins nicht kompatibel zu sein scheint.Ich konnte eine Entwicklungsversion erstellen, indem ich alle Plugin-Abhängigkeiten von
com.android.support:support-v4:+
auf ändertecom.android.support:support-v4:27.1.0
. Auch habe ich ausgeführtionic cordova platform remove android
undionic cordova platform add android
. Hoffe es hilft, zumindest für die Entwicklung.quelle
Ich habe gerade dieses Problem behoben , indem auf die Plattform / android - Ordner und bearbeiten die gehen
project.properties
) Datei und ersetztcom.android.support:support-v4:+
mitcom.android.support:support-v4:27.1.0
.quelle
Wenn Sie wirklich nur eine schnelle Lösung für dieses Problem benötigen, damit Ihr Build ausgeführt wird, können Sie versuchen, die folgenden Zeilen in Ihre Datei platform / android / build.gradle einzufügen:
Das Einstellen der Version hier ist jedoch keine nachhaltige Lösung.
quelle
Es ist seltsam, aber es funktioniert, wenn ich die folgenden Zeilen mit denselben Versionen hinzufüge.
Dies sind meine verwandten Zeilen in der
platforms/android/build.gradle
Datei:In meinem Projekt trat das Problem aufgrund des Plugins 'cordova-plugin-crosswalk-webview' auf.
quelle
Ich habe den gleichen Fehler, aber nicht in Cordova Build. Eine neue Version von
com.android.support:appcompat-v7
und Abhängigkeiten.com.android.support:appcompat-v7
Aber die inkompatible Version befindet sich im dritten Paket, das von .So kann ich das dritte Paket nicht mit der @ avmatte -Lösung reparieren .Verwenden Sie die Lösung von @ Sai Teja , um ein inkompatibles Paket zu finden:
Dann behoben mit:
Über dem Code wird die Abhängigkeitsversion erzwungen.
quelle
Ich hatte den gleichen Fehler. Habe eine vollständige Recherche im Plugin-Verzeichnis für com.android.support:support-v4:+ durchgeführt und durch einen statischen Versionscode ersetzt.
Für mich hat com.android.support:support-v4:23.4.0 einwandfrei funktioniert. Es war dann nicht nötig, die Android-Plattform zu entfernen und erneut hinzuzufügen.
quelle
Hier ist eine einfache Möglichkeit, das Problem zu beheben, das beim Neuerstellen des Plattformverzeichnisses bestehen bleibt. Sie müssen nicht alle Plugins durchgehen, um einen Schuldigen zu finden. Erstellen Sie eine Datei
build-extras.gradle
mit folgenden Inhalten:Erstellen Sie dann die Datei
after_platform_add/010_copy_build_extras.js
mit folgendem Inhalt:Erstellen Sie nun die Android-Plattform neu und sie verwendet die angeheftete Support-Bibliothek.
quelle
<platform name="android"> <hook src="hooks/copy_build_extras.js" type="before_build" /> </platform>
process.argv[2]
istbuild
für mich!Ich habe die Lösung im Ionic Forum gefunden, die die einzige Lösung war, die für mich funktioniert hat:
Lauf:
ionic cordova plattform rm android
Lauf:
ionische Cordova-Plattform hinzufügen [email protected]
Lauf:
ionisches Cordova-Plugin Cordova-Plugin-Android hinzufügen
Lauf:
ionisches Cordova-Plugin Cordova-Plugin-AndroidX-Adapter hinzufügen
Stellen Sie sicher, dass Ihre gradle.properties:
cdvMinSdkVersion = 19
Stellen Sie sicher, dass Ihr build.gradle Folgendes enthält:
Stellen Sie sicher, dass Ihre config.xml Folgendes enthält:
von: https://forum.ionicframework.com/t/firebase-app-unable-to-compile-on-android-with-aapt-error/166564/7
Dies wird auch in der Stackoverflow-Antwort behandelt: https://stackoverflow.com/a/56656680/839691
quelle
Ionic 3
App funktioniert . Danke dir!Einige Ihrer Bibliotheken sollten verwenden
Finden Sie, welches ist, mit
Und fügen Sie diese Bibliothek als Modul hinzu, wenn sie in ihrem neuesten Update keine bestimmte Version verwendet (werfen Sie auch ein Problem in dieser Bibliothek auf !;))
Danke an @avmatte!
BEARBEITEN: Sie können auch gradle anfordern, um die Bibliotheksversion zu erzwingen
quelle
Ich hatte gestern aus heiterem Himmel das gleiche Problem. Es begann zufällig, aber nach dem Lesen sieht es so aus, als hätte es mit einem Update zu tun, wie oben von @ cpro90 erwähnt. Ich habe jedoch versucht und konnte nicht finden, wo ich die erforderlichen manuellen Änderungen vornehmen kann.
Schließlich stellte ich fest, dass das Problem durch mein Cordova-Plugin-Crosswalk-Webview-Plugin verursacht wurde. Auf GitHub habe ich das Problem heute Morgen im Plugin Repro gefunden und es hatte bis zum Mittagessen über 520 Aufrufe.
@UNUMObile schlug Folgendes in der
build.gradle
Datei vor, um eine frühere Version global zu erzwingen:Dies funktionierte sofort für mich und kann anderen mit anderen Plugins helfen, die ebenfalls von 'com.android.support:support-4:<28 abhängig waren. Die neue Version 28 scheint das Problem zu sein.
Ich hoffe, das hilft jemandem, vorwärts zu kommen.
quelle
Nur ein paar Tipps für Kotlin-Entwickler:
Wenn Sie diesen Antworten hier folgen, sind Sie sicher, dass Sie keine
support-v4
Bibliothek in Ihrem Projekt haben, aber Sie sehen diesen Fehler immer noch. Schauen Sie sich diektx
Bibliothek an.Ich habe gerade herausgefunden, dass ich die neueste
1.0.0-alpha1
Version für die ktx-Bibliothek verwende, und dieser Fehler zeigt sich. Nachdem ich wieder zur Version gewechselt habe0.3
, ist jetzt alles wieder normal.quelle
Fügen Sie die folgenden Zeilen zu Ihren Plattformen / android / build.gradle hinzu
Wenn immer noch Probleme auftreten, führen Sie diesen Befehl aus:
quelle
In Ihrer
build.gradle
Datei hinzufügenUnd in Ihrer
project.properties
Datei ändern Siecordova.system.library.3
zucordova.system.library.3=com.android.support:support-v13:27.+
.quelle
Für Phonegap Build - Benutzer, wie @catu in einem Kommentar erwähnt, können Sie versuchen , dieses Plugin , das Ziel ist Build - Ausfälle , indem verschiedene Versionen der Support - Bibliotheken zu verhindern .
quelle
Beheben Sie dieses Problem einfach, indem Sie die folgenden Codezeilen in die Datei platform / android / app / build.gradle direkt nach dem Block buildscript {} einfügen:
quelle
Ich hatte das gleiche Problem nach der Installation des Cordova-Plugin-Datei-Opener2-Plugins. Es wurde nach dem Ausführen entfernt: Option 1: Installieren Sie das Cordova-Android-Support-Gradle-Release-Plugin. Cordova Plugin Cordova-Android-Support-Gradle-Release hinzufügen - holen
quelle
Ein weiterer Ansatz mit derselben Lösung ist das Erstellen eines Hakens. Es ist dauerhaft (nach der Neuinstallation der Plattform), Sie können es festschreiben und es ist nicht erforderlich, die Plattform erneut hinzuzufügen.
Init Hook in Konfiguration
Installieren Sie die fs-Abhängigkeit zu Ihrem Projekt:
Build ausführen:
quelle
SUPER EINFACHER UND RICHTIGER WEG, ES ZU LÖSEN!
Aktualisieren Sie einfach das SDK und fügen Sie die neueste Version von Android hinzu ... und starten Sie den Computer neu! Getan...
Jetzt haben wir Zeit, über Autos und Sport zu sprechen ...
quelle
Ich hatte das gleiche Problem und keine der angegebenen Lösungen funktionierte für mich. Die Installation der neuesten Version der Android SDK Build-Tools (27.0.3) hat mein Problem behoben.
quelle
Lösungslink
Dies liegt am kompatiblen Plugin. Entfernen Sie dieses Plugin, wenn Sie eine ältere Version (weniger als 1.2.0 ) haben, und setzen Sie [email protected]
Ich arbeite an meinem Fall. Vielen Dank :)
quelle
Aktualisierungen der Antwort von @Brad Pitcher:
hooks/copy_build_extras.js
config.xml
build-extras.gradle
im root dirquelle
Ich bin auf dieses Problem mit reag native gestoßen und es wurde durch die folgenden Zeilen in meinem verursacht
android/app/build.gradle
:etc...
Anscheinend löste sich dieses + zu einer neuen 17.0.0-Version auf, die meinen Build kaputt machte.
Das Ändern von + auf 16.0.0 (oder 16.0.1 für Play-Services-Base) hat mein Problem gelöst
quelle
Dieses Problem hatte mich eine Woche lang umgebracht.
Letztendlich bin ich am gelandet
[email protected]
Ich habe mich verändert,
android/project.properties
indem ich mich verändert habeDiese Änderung brachte mich schließlich aus der Dunkelheit der ttcIndex-Fehlermeldung heraus.
Dann habe ich diesen Fehler bekommen
Der Fehler war anscheinend auf ein Problem mit der Java-Version zurückzuführen. Ich habe mich dann
android/build.gradle
mit der folgenden Änderung geändertBeachten Sie auch, dass ich das
cordova-android-support-gradle-release
Plugin installiert habe, aber keine Ahnung habe, ob ich es brauche.quelle
Es ist ein doppelter Eintrag in values.xml in einem Ordner namens
support-compat-28.0.0-alpha1.aar
.Sie finden diese Datei unter Windows unter
\users\YOURUSERID\.gradle\caches\transforms-1\files-1.1
Sobald Sie sich in diesem Ordner befinden, müssen Sie einige Ebenen tiefer in die Datei values.xml gehen .
Suchen Sie in dieser Datei nach einem Element
<declare-styleable name="FontFamilyFont>
.Entfernen Sie in diesem Element die VIER Zeilen mit
android:
.Nachdem ich diese Änderung vorgenommen habe, kann ich ohne Fehler wieder erstellen.
quelle