104 votes

Exécution de "cordova build android" - impossible de trouver l'attribut android: fontVariationSettings et android: ttcIndex

Lorsque j'exécute cordova build android --buildConfig xxxx --release , j'obtiens l'erreur suivante:

 ERROR: In <declare-styleable> FontFamilyFont, unable to find attribute android:fontVariationSettings
ERROR: In <declare-styleable> FontFamilyFont, unable to find attribute android:ttcIndex
 

Ce qui est étrange, c’est que j’utilise deux machines MacOS pour la compilation, et je n’obtiens cette erreur que sur l’une d’elles pour le même code.

Voici le résultat de ./gradlew cdvPrintProps obtenu sur les deux machines:

 :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
 

Ci-dessous la liste des plugins utilisés:

 $ 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"
 

Comment puis-je résoudre ce problème?

106voto

helmson helmson Points 1100

Il suffit de mettre la suite dans build-extras.gradle

 configurations.all {
    resolutionStrategy {
        force 'com.android.support:support-v4:27.1.0'
    }
}
 

84voto

Andrew Radulescu Points 1584

Google a publié la nouvelle version 28.0.0-alpha1 de com.android.soutien:le soutien-v4 qui est l'ajout de 2 nouveaux attributs(android:fontVariationSettings et android:ttcIndex). Certains de ces plugins sont à l'aide de la dernière android-support des bibliothèques de résultats indésirables des incompatibilités.

Option 1: Installer cordova-android-support-gradle-version du plugin.

Bien documenté plugin qui "aligne les différentes versions d'Android bibliothèques de prise en charge définies par d'autres plugins à une version spécifique". Testé sans le comportement destructeur.

cordova plugin add cordova-android-support-gradle-release --fetch

Lisez la documentation pour un ensemble complet d'options: Readme

Option 2: Ajouter de l'extrait de code suivant dans la construction.gradle en vertu de plates-formes/android

/** 
IMPORTANT - Manually added
Problem: 8 March 2018 - Google released version support-v4:28.0.0-alpha1 
which breaks the project with following error: unable to find attribute 
android:fontVariationSettings and android:ttcIndex

Effect: Force a specific version of the library
*/

configurations.all {
    resolutionStrategy.force 'com.android.support:support-v4:27.1.0'
}

Avertissement: le code de construire.gradle sera écrasé si vous supprimer/ajouter la plate-forme Android. Si vous ne souhaitez pas utiliser le plugin pour une raison ou une certaine façon ne fonctionne pas pour vous, au lieu de créer un crochet et remplacer le fichier à chaque fois. Vérifier 2ème commentaire ici.

Si le problème est persistant, vous pouvez essayer:

cordova platform rm android
cordova platform add android

OU

Assurez-vous que vous ne disposez pas d'une version précédente de l'application installée sur l'appareil de test parce que vous recevrez une erreur ambigu lorsqu'il essaie de rétrograder la version existante: "INSTALL_FAILED_VERSION_DOWNGRADE" et "UnhandledPromiseRejectionWarning: non Gérée promesse de rejet"

31voto

avmatte Points 581

La même erreur est passe pour moi. Apparemment, une nouvelle version de l' com.android.support:support-v4 bibliothèque a été libéré, et le plugin que j'utilise définit com.android.support:support-v4:+ que la dépendance en plugin.xml. L' + signe signifie qu'il sera la version la plus récente (28.0.0), qui semble qui semble être incompatible avec d'autres plugins.

J'ai été en mesure de construire une version de développement par le changement de tous les plugin dépendances de com.android.support:support-v4:+ de com.android.support:support-v4:27.1.0. Aussi, j'ai exécuté ionic cordova platform remove android et ionic cordova platform add android. Espérons que cela aide, au moins pour le développement.

28voto

ahmdabos Points 340

Je viens de résoudre ce problème en allant dans le dossier platform / android et en modifiant le fichier project.properties ) et en remplaçant com.android.support:support-v4:+ par com.android.support:support-v4:27.1.0 .

21voto

stu Points 219

Si vous avez vraiment besoin d'une solution rapide à ce problème pour exécuter votre génération, vous pouvez essayer d'ajouter les lignes suivantes dans votre fichier plateformes / android / build.gradle:

 configurations.all {
    resolutionStrategy {
        force 'com.android.support:support-v4:27.1.0'
    }
}
 

Quoi qu'il en soit, définir la version ici n'est pas une solution durable.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X