web-dev-qa-db-fra.com

Erreur de construction - Ionic Cordova échoue pour Android

Je reçois une erreur en exécutant la commande "ionic cordova build Android --stacktrace":

:generateDebugResources
:mergeDebugResources

:processDebugManifest

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

I am using following tools on Window's:
 Editor : VScode

Ionic: C:\Users\xyz>ionic -version
3.19.1
Npm as packagemanager

Propriétés du projet: 

target=Android-26
cordova.system.library.1=com.google.Android.gms:play-services-analytics:+
cordova.system.library.2=com.facebook.Android:facebook-Android-sdk:4.+
cordova.gradle.include.1=cordova-plugin-appsflyer-sdk/customerapp-cordovaAF.gradle
cordova.gradle.include.2=Twitter-connect-plugin/customerapp-Twitter.gradle
cordova.system.library.3=com.Android.support:support-v4:26.+
cordova.system.library.4=com.Android.support:appcompat-v7:26.+
cordova.system.library.5=com.Android.support:support-v4:24.1.1+
cordova.system.library.6=com.Android.support:support-v4:+
Android.library.reference.1=CordovaLib
7
Kumar

Je devais faire les choses des deux réponses ci-dessus:

Dans plates-formes/Android/phonegap-plugin-barcodescanner :

Recherchez compile 'com.Android.support:support-v4:+ et remplacez pour compile 'com.Android.support:support-v4:27+'.

Dans plates-formes/Android :

Recherchez cordova.system.library.2=com.Android.support:support-v4:+ et remplacez pour cordova.system.library.2=com.Android.support:support-v4:27.1.0.

J'espère que ça aide.

10
David López

Mine avait besoin d'un correctif similaire à celui décrit ci-dessus, mais uniquement dans le plugin de.appplant.cordova.plugin.local-notification. J'ai remplacé «com.Android.support:support-v4:+» par «com.Android.support:support-v4:23+», puis j'ai supprimé et ajouté la plate-forme Android. Cependant, j'avais une attache supplémentaire '}' dans mon build-extras.gradle qui devait également être supprimée. 

3
Mark A. Rupert

trouvé ceci sur le forum ionique https://forum.ionicframework.com/t/Android-build-broken-after-gradle-dependencies-update-execution-failed-for-task-processdebugresources-com-Android-ide- common-processus-processexception-échec-à-exécuter-aapt/109982/134 la suggestion qui a fonctionné pour moi était "Je l'ai fait fonctionner, mon problème était dans le cordova-plugin-file-opener2.
Remplacez com.Android.support:support-v4:+ par com.Android.support:support-v4:23+ dans plugin.xml pour cordova-plugin-file-opener2 dans le dossier plugins et le dossier node_modules. 
Faites de même dans le project.properties dans platforms/Android.
Mon plugin cependant était la géolocalisation de fond et en fait je ne crois pas que je devais faire un correctif dans le project.properties pour le mien.

3
Spencer Hehl

Avait le même problème, ce que j'ai fait était la suivante:

  1. Effacer le répertoire de construction
    • cordova propre
  2. Ajoutez multiDexEnabled sous Android -> defaultConfig au fichier build.gradle
    • "votre projet\plates-formes\Android\app\build.gradle"
    • multiDexEnabled true
  3. Modifiez les dépendances pour "com.Android.support" dans le fichier build.gradle
    • com.Android.support:support-v4:+ => com.Android.support:support-v4:23+
  4. Parcourez le dossier plugins, recherchez dans tous les fichiers "plugins.xml" et remplacez:
    • com.Android.support:support-v4:+ => com.Android.support:support-v4:23+
  5. Modifiez project.properties sous "plates-formes\Android\project.properties"
    • cordova.system.library.4 = com.Android.support: support-v4: 23+
  6. Run "ionic cordova run build"

Impossible de fusionner dex

Installation propre

Mauvais espace de nom/version

.

Android {

    defaultConfig {
        multiDexEnabled true
        versionCode cdvVersionCode ?: new BigInteger("" + privateHelpers.extractIntFromManifest("versionCode"))
        applicationId privateHelpers.extractStringFromManifest("package")

        if (cdvMinSdkVersion != null) {
            minSdkVersion cdvMinSdkVersion
        }
    }
}
1
Nightking

J'avais le même problème à l'improviste hier. Cela a commencé de manière aléatoire, mais d'après ce que j'ai lu, il semble qu'il s'agisse d'une mise à jour mentionnée ci-dessus par @ cpro90. Cependant, j'ai essayé et je n'ai pas pu trouver où faire le changement manuel nécessaire.

Finalement, j'ai identifié que le problème était causé par mon plugin cordova-plugin-crosswalk-webview. Sur Github, j'ai trouvé le problème sur le plug-in à reproduire ce matin et il avait eu plus de 520 vues à l'heure du déjeuner.

@UNUMObile a suggéré ce qui suit dans le fichier build.gradle pour forcer une version antérieure de manière globale:

    configurations.all {
       resolutionStrategy.force 'com.Android.support:support-v4:24.0.0'
    }

Cela a immédiatement fonctionné pour moi et peut aider les autres avec d'autres plugins qui ont également eu leur dépendance sur 'com.Android.support:support-4:<28. La nouvelle version 28 semble être le problème.

J'espère que cela aide quelqu'un à avancer.

0
Chris Scutt

Je n'ai pas trouvé "com.Android.support:support-v4:+" dans les chemins indiqués des sujets que j'ai trouvés, alors que j'avais essayé dans tous les dossiers et que j'avais 

plateformes/Android/phonegap-plugin - barcodescanner . gradle

dans mon cas le plugin était le barcodescanner , dans le vôtre peut être un autre . puis j'ai suivi les informations et remplacé par "'com.Android.support:support-v4:27+" et cela a fonctionné.

Je me demandais si cela fonctionnait parfaitement hier. Aujourd'hui, j'ai changé un seul texte et donné cette erreur ... lors de la construction, j'ai réalisé qu'il y avait eu quelques téléchargements.

0
Marcos Deilson

Remplacement 'com.Android.support:support-v4:+' et 'com.Android.support:support-v4:27+' avec des versions corrigées dans le plugin.xml ne fonctionnait pas us - cordova crosswalk a mis à jour au moins une bibliothèque de support vers la version 28.0.0-alpha1 si.

Forcer une version fixe de la bibliothèque de support pour chaque dépendance pourrait résoudre le problème à la fin. 

configurations.all {
resolutionStrategy {
    eachDependency { DependencyResolveDetails details ->
        if (details.requested.group == 'com.Android.support') {
            details.useVersion "27.1.0"
        }
    }
}
0
franjoo