web-dev-qa-db-fra.com

Échec de la fusion du manifeste: attribut application @ appComponentFactory

Donc tout va bien mais j'essaye d'ajouter cette bibliothèque https://github.com/wdullaer/MaterialDateTimePicker avec ceci

implementation 'com.wdullaer:materialdatetimepicker:4.0.1'

Et soudain quand je synchronise mon Graddle ça me donne cette erreur

Manifest merger failed : Attribute application@appComponentFactory value=(Android.support.v4.app.CoreComponentFactory) from [com.Android.support:support-compat:28.0.0] AndroidManifest.xml:22:18-91
is also present at [androidx.core:core:1.0.0] AndroidManifest.xml:22:18-86 value=(androidx.core.app.CoreComponentFactory).
Suggestion: add 'tools:replace="Android:appComponentFactory"' to <application> element at AndroidManifest.xml:10:5-53:19 to override.

Et même si j'ajoute cette suggestion dans mon manifeste

<?xml version="1.0" encoding="utf-8"?>
   <manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"    
   xmlns:tools="http://schemas.Android.com/tools"
   package="com.itt.ceatm">

<application
    Android:allowBackup="true"
    Android:icon="@mipmap/ic_launcher"
    Android:label="@string/app_name"
    Android:roundIcon="@mipmap/ic_launcher_round"
    Android:supportsRtl="true"
    Android:theme="@style/AppTheme"
    tools:replace="Android:appComponentFactory"> // HERE
    <activity...

Je ne suis pas en mesure de le faire parce que maintenant je reçois cette erreur

Manifest merger failed with multiple errors, see logs

Voici mon manifeste complet

apply plugin: 'com.Android.application'

Android {
compileSdkVersion 28
defaultConfig {
    applicationId "com.itt.ceatm"
    minSdkVersion 19
    targetSdkVersion 28
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner 
"Android.support.test.runner.AndroidJUnitRunner"
    Android.defaultConfig.vectorDrawables.useSupportLibrary = true
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-Android.txt'), 
'proguard-rules.pro'
    }
 }
}

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.Android.support:appcompat-v7:28.0.0'
implementation 'com.Android.support:design:28.0.0'
implementation 'com.Android.support.constraint:constraint-layout:1.1.3'
implementation 'com.Android.support:support-vector-drawable:28.0.0'
implementation 'com.mikhaellopez:circularimageview:3.2.0'
implementation 'com.Android.support:recyclerview-v7:28.0.0'
implementation 'com.github.PhilJay:MPAndroidChart:v3.0.3'
implementation 'com.github.ganfra:material-spinner:2.0.0'

implementation 'com.wdullaer:materialdatetimepicker:4.0.1' //NEW LIBRARY

testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.Android.support.test:runner:1.0.2'
androidTestImplementation 'com.Android.support.test.espresso:espresso- 
core:3.0.2'}

Des conseils? J'ai déjà fait une recherche, essayant de faire du travail autour du code de bloc de configureall et d'autres, mais sans succès. Je suis coincé

Ou même une autre recommandation d'une bibliothèque pour DatePicker avec une conception matérielle serait appréciée

EDIT - SOLUTION: Merci à tous btw Donc, la rétrogradation de la bibliothèque était ok mais cela m'a donné cette erreur

Erreur sur le support des différentes versions (je ne peux pas le mettre directement à cause de mon niveau, désolé)

Ensuite, j'ai fait une recherche et ajouté ces 2 nouvelles implémentations

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.Android.support:appcompat-v7:28.0.0'
implementation 'com.Android.support:design:28.0.0'
implementation 'com.Android.support.constraint:constraint-layout:1.1.3'
implementation 'com.Android.support:support-vector-drawable:28.0.0'

implementation 'com.Android.support:support-v13:28.0.0' //THIS
implementation 'com.Android.support:support-media-compat:28.0.0' //AND THIS

implementation 'com.mikhaellopez:circularimageview:3.2.0'
implementation 'com.Android.support:recyclerview-v7:28.0.0'
implementation 'com.github.PhilJay:MPAndroidChart:v3.0.3'
implementation 'com.github.ganfra:material-spinner:2.0.0'

implementation "com.wdullaer:materialdatetimepicker:3.6.4"

testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.Android.support.test:runner:1.0.2'
androidTestImplementation 'com.Android.support.test.espresso:espresso- 
core:3.0.2'}

Et puis j'ai pu utiliser la bibliothèque sans erreur

Merci encore à tous!

7
Angel R

le sélecteur de date a androidx comme dépendance. rétrogradation vers la version 3.6.4 dépendrait de Android.support à nouveau - ou mettez à niveau votre application pour utiliser androidx. voir numéro 54 .

// https://mvnrepository.com/artifact/com.wdullaer/materialdatetimepicker
implementation "com.wdullaer:materialdatetimepicker:3.6.4"

^ ce serait le moyen le plus simple de corriger les dépendances conflictuelles.

4
Martin Zeitler

Vous obtenez cette erreur car la bibliothèque que vous importez est basée sur androidx, ce qui constitue une amélioration majeure par rapport aux bibliothèques de support que vous utilisez.

Maintenant, vous trois solutions:

  1. Utilisez une autre bibliothèque de sélecteur de date qui est basée sur les versions de support précédentes (Recommandé et meilleur moyen).

  2. Modifiez vos bibliothèques de support en androix. (Recommandé mais difficile)

  3. Ajouter des outils d'ignorance (sortie facile)

Voici un lien que j'ai trouvé: Sélecteur de date

implementation 'com.github.Kunzisoft:Android-SwitchDateTimePicker:2.0'
5
Arahasya