J'ai la prochaine année
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.Android.support:appcompat-v7:28.0.0-rc01'
implementation 'com.Android.support.constraint:constraint-layout:1.1.2'
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'
implementation 'com.google.Android.material:material:1.0.0-rc01'
}
Mais lorsque je veux créer une application, je reçois le prochain journal:
Manifest merger failed : Attribute application@appComponentFactory value=(Android.support.v4.app.CoreComponentFactory) from [com.Android.support:support-compat:28.0.0-alpha3] AndroidManifest.xml:22:18-91
is also present at [androidx.core:core:1.0.0-alpha3] AndroidManifest.xml:22:18-86 value=(androidx.core.app.CoreComponentFactory).
Suggestion: add 'tools:replace="Android:appComponentFactory"' to <application> element at AndroidManifest.xml:5:5-19:19 to override.
Bien! Allez au manifeste et faites-le:
<?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="ru.chopcode.myapplication">
<application
tools:replace="Android:appComponentFactory"
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">
</application>
</manifest>
Ensuite, je reçois cette erreur dans mon Logcat:
Manifest merger failed with multiple errors, see logs that I have Linked with it
Il suffit de changer "rc01" dans la première et dernière ligne à l'intérieur des dépendances en "alpha1" Cela fonctionne pour moi
J'ai eu le même problème. Ajout de deux lignes dans le fichier gradle.properties
:
Android.useAndroidX=true
Android.enableJetifier=true
Ces deux lignes ont automatiquement résolu les conflits de dépendance entre les fichiers de Google et les dépendances tierces. Voici le lien à suivre: https://developer.Android.com/topic/libraries/support-library/androidx-overview#new-project
dans le gradle.properties
, ajoutez simplement ci-dessous deux scripts
Android.useAndroidX=true
Android.enableJetifier=true
Quelle était la raison
Tous les packages sous AndroidX résident dans un espace de noms cohérent commençant par la chaîne androidx. Les packages de la bibliothèque de support ont été mappés dans les packages androidx. * Correspondants. Pour un mappage complet de toutes les anciennes classes et créer des artefacts pour les nouveaux, voir la page Refactoring de paquet.
Vous utilisez la bibliothèque de matériaux qui fait partie de AndroidX . Si vous ne connaissez pas AndroidX, veuillez passer par cette réponse .
Une application doit utiliser AndroidX ou les anciennes bibliothèques de support Android . C'est pourquoi vous avez fait face à ce problème.
Par exemple -
Dans votre diplôme, vous utilisez
com.Android.support:appcompat-v7
(partie de l'ancien --Android Support Library--)com.google.Android.material:material
(composant d'AndroidX) (artefact de génération d'AndroidX de com.Android.support:design
)La solution consiste donc à utiliser AndroidX ou une ancienne bibliothèque de support. Je recommande d'utiliser AndroidX, car Android ne mettra pas à jour les bibliothèques de support après la version 28.0.0. Voir notes de publication de la bibliothèque de support.
Migrez simplement vers AndroidX . Here est ma réponse détaillée pour migrer vers AndroidX. Je mets ici les étapes nécessaires de cette réponse.
Avant de migrer, il est fortement recommandé de sauvegarder votre projet.
Projet existant
Nouveau projet
Mettez ces drapeaux dans votre gradle.properties
Android.enableJetifier=true
Android.useAndroidX=true
Vérifiez les mappages @ de la bibliothèque pour un package AndroidX égal .
Check @ Page officielle de Migrer vers AndroidX
Depuis Android P, les bibliothèques de support ont été déplacées vers AndroidX.
S'il vous plaît faire un refactor pour votre libs de cette page .
https://developer.Android.com/topic/libraries/support-library/refactor
il suffit d'ajouter ces deux lignes de code à votre fichier manifeste
tools:replace="Android:appComponentFactory"
Android:appComponentFactory="whateverString"
Il suffit de supprimer la dépendance Android.support
implementation 'com.Android.support:appcompat-v7:28.0.0-rc01'
Citant à partir de directives importantes
Si vous ne souhaitez pas encore basculer vers les nouveaux packages androidx et com.google.Android.material, vous pouvez utiliser les composants de matériau via la dépendance com.Android.support:design:28.0.0-alpha3.
Remarque: vous ne devez pas utiliser simultanément com.Android.support et com.google.Android.dependencies dans votre application.
Il suffit de supprimer cette dépendance pour fonctionner correctement
implementation 'com.Android.support:appcompat-v7:28.0.0-rc01'
Voici un exemple complet de dépendances
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.google.Android.material:material:1.0.0-beta01'
implementation 'com.Android.support.constraint:constraint-layout:1.1.2'
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'
}
Enfin, nous avons trouvé une solution simple et rapide en ajoutant deux lignes dans le fichier Android/build.gradle
.
googlePlayServicesVersion = "16.+"
firebaseVersion = "17.6.0"
S'il vous plaît suivez ce 100% correct.
Tout ce que j'ai fait est d'aller à l'option "Refactor" dans le menu du haut.
Puis sélectionnez "Migrer vers AndroidX"
Acceptez pour enregistrer le projet en tant que fichier Zip.
Veuillez mettre à jour Android Studio ainsi que Gradle pour vous assurer qu'aucun problème ne survient.
Migrez vers androidX s'il s'agit d'un projet existant. S'il s'agit d'un nouveau projet, ajoutez ces deux indicateurs à Gradle.propeties.
Android.enableJetifier = true
Android.useAndroidX = true
pour plus d'étapes de détail https://developer.Android.com/jetpack/androidx ou vérifiez ceci Qu'est-ce qu'AndroidX
Suivez ces étapes:
Créez un nouveau projet et comparez vos fichiers build.gradle et remplacez tous
implementation 'com.Android.support:appcompat-v7:27.1.1'
implementation 'com.Android.support.constraint:constraint-layout:1.1.1'
et d'autres dépendances avec les mêmes que dans un nouveau projet quelque chose comme ça
implementation 'androidx.appcompat:appcompat:1.0.0-alpha3'
implementation 'androidx.constraintlayout:constraintlayout:1.1.2'
implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0-alpha1'
androidTestImplementation 'androidx.test:runner:1.1.0-alpha3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha3'
implementation 'androidx.core:core-ktx:1.0.0-alpha3'
Et puis les importations fixes pour utiliser androidx dans les fichiers Kotlin.
Veuillez aller sur Refactor-> Migrate-> Migrate to Android X.
Ajoutez ceci à votre fichier gradle.properties: Android.enableJetifier = true Android.useAndroidX = true
Et effectuer la synchronisation.
Je faisais face à cet étrange bug de 2 heures. J'ai résolu cette erreur en suivant ces étapes
modifiez vos dépendances build.gradle dans
implementation 'com.google.Android.gms:play-services-maps:17.0.0'
à
implementation 'com.google.Android.gms:play-services-maps:15.0.0'
J'ai eu le même problème pendant trois jours.
C'est comme si Android veut que nous utilisions Kotlin ou AndroidX, ils se débarrassent d'Android.
Mais voici comment je l'ai résolu.
NB: Vous devez utiliser les dernières bibliothèques (fichier build.grudle) dans la dernière version stable de Android studio 3.4.1.
Seulement si vous ne voulez pas utiliser androidx
Donc, dans mon cas, j'utilise une bibliothèque qui utilisait androidx mais je n'utilise pas androidx alors quand j'ai rétrogradé cette version de la bibliothèque et que le problème est résolu.
Dans mon cas:
implementation 'com.github.turing-tech:MaterialScrollBar:13.+'
la bibliothèque mentionnée ci-dessus crée le problème 13. + obtient automatiquement une nouvelle version utilisant androidx. J'ai donc rétrogradé la version de la bibliothèque pour:
implementation 'com.github.turing-tech:MaterialScrollBar:13.2.5'
Et mon problème a été résolu.
Ajoutez ces lignes à l'intérieur du fichier AndroidManifest.xml.
tools: replace = "Android: appComponentFactory" Android: appComponentFactory = "n'importe lequel"
Ce problème est principalement survenu pour anciennes dépendances .
Il y a 2 solution:
Premier:
Mettez à jour tous les fichiers old dependencies
et ClassPaths from Project level gradle
.
classpath 'com.Android.tools.build:gradle:3.3.1'
classpath 'com.google.gms:google-services:4.2.0'
Deuxième:
Votre projet Migrate to AndroidX
À partir du menu Android Studio -> Refanctor -> Migrate to AndroidX
Merci, laissez-moi savoir si quelqu'un aide de cette réponse.
Si vous n'avez pas l'intention de migrer vers AndroidX, suivez les étapes ci-dessous.
Tout d’abord, assurez-vous d’ajouter cette ligne dans balise manifest
xmlns:tools="https://schemas.Android.com/tools"
Ensuite, ajoutez des outils pour remplacer votre suggestion dans le studio Android
J'ai eu la même erreur en travaillant avec Groupie (implémentation 'com.xwray: groupie: 2.3.0')
Je l'ai résolu en changeant la version en (implémentation 'com.xwray: groupie: 2.1.0')
Dans le cas où je ne voulais pas passer à AndroidX. Et je dois vérifier mes dernières modifications. Je découvre que le nouveau composant était -> lottie 2.8.0 Donc je le rétrograde: implémentation 'com.airbnb.Android:lottie:2.7.0'
J'espère que cela pourra aider quelqu'un.
1.Ajouté ces codes à la fin de votre application/build.gradle:
configurations.all {
resolutionStrategy.force 'com.Android.support:support-v4:28.0.0'
// the above lib may be old dependencies version
}
2. Version du sdk et des outils modifiée à 28:
compileSdkVersion 28
buildToolsVersion '28.0.3'
targetSdkVersion 28
3.Dans votre fichier AndroidManifest.xml, vous devez ajouter deux lignes:
<application
Android:name=".YourApplication"
Android:appComponentFactory="AnyStrings"
tools:replace="Android:appComponentFactory"
Android:icon="@drawable/icon"
Android:label="@string/app_name"
Android:largeHeap="true"
Android:theme="@style/Theme.AppCompat.Light.NoActionBar">
Pour résoudre ce problème, je vous conseillerais de définir explicitement la version des variables ext au niveau du Android/build.gradle
de votre projet racine.
ext {
googlePlayServicesVersion = "16.1.0" // default: "+"
firebaseVersion = "15.0.2" // default: "+"
// Other settings
compileSdkVersion = <Your compile SDK version> // default: 23
buildToolsVersion = "<Your build tools version>" // default: "23.0.1"
targetSdkVersion = <Your target SDK version> // default: 23
supportLibVersion = "<Your support lib version>" // default: 23.1.1
}
référence https://github.com/zo0r/react-native-Push-notification/issues/1109#issuecomment-506414941
Modifiez proguardFile dans build.gradle (Module: app) comme suit:
proguardFiles getDefaultProguardFile('proguard-Android-optimize.txt'), 'proguard-rules.pro'
au lieu de
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
Cela a fonctionné pour moi