Depuis le téléchargement du dernier SDK et l'installation d'Android Studio, la construction de mon projet a échoué. Je reçois le message suivant:
Error:Gradle: Execution failed for task ':SampleProject:processProdDebugManifest'.
> Manifest merger failed : uses-sdk:minSdkVersion 14 cannot be smaller than version L declared in library com.Android.support:support-v4:21.0.0-rc1
Note: Ceci a été mis à jour pour refléter la version de API 21, Lollipop. Assurez-vous de télécharger le dernier SDK.
Dans l'un de mes modules, j'avais les éléments suivants dans build.gradle:
dependencies {
compile 'com.Android.support:support-v4:+'
}
Changer cela pour
dependencies {
// do not use dynamic updating.
compile 'com.Android.support:support-v4:21.0.0'
}
résolu le problème.
Assurez-vous que vous ne faites pas d'inclusion générale de com.Android.support:support-v4:+
ou de toute autre bibliothèque de support (v7, v13, appcompat, etc.), où que vous soyez dans votre projet.
Je suppose que le problème est v4:+
ramasse le release candidate (21.0.0-rc1) dernière version de L qui nécessite évidemment le SDK L.
Modifier:
Si vous devez utiliser les nouvelles vues (CardView, RecyclerView et Palette), les opérations suivantes devraient fonctionner:
compile "com.Android.support:cardview-v7:21.0.0"
compile "com.Android.support:recyclerview-v7:21.0.0"
compile "com.Android.support:palette-v7:21.0.0"
(Merci à EddieRingle sur/androiddev - http://www.reddit.com/r/androiddev/comments/297xli/howto_use_the_v21_support_libs_on_older_versions/
Une autre édition
Assurez-vous de voir la réponse de @ murtuza ci-dessous concernant appcompat-v7 et de voter si cela peut vous aider!
De plus, si vous importez la bibliothèque appcompat-v7, assurez-vous de marquer un numéro de version à la fin, comme suit:
compile 'com.Android.support:support-v4:19.+'
compile 'com.Android.support:appcompat-v7:19.+'
Après avoir seulement changé la version de support-v4, j'ai quand même reçu l'erreur:
La fusion manifeste a échoué: uses-sdk: minSdkVersion 15 ne peut pas être plus petite que la version L déclarée dans la bibliothèque com.Android.support:support-v4:21.0.0-rc1
C'était un peu déroutant, car il semble que le problème persiste, mais, en fait, restreindre la version de appcompat v7 a résolu le problème.
Solution 1:
Remplacez uses-sdk par <uses-sdk tools:node="replace" />
et ajoutez xmlns:tools="http://schemas.Android.com/tools"
in AndroidManifest.xml
<?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.demo.Android"
Android:versionCode="16"
Android:versionName="3.3.1">
.
.
<uses-sdk tools:node="replace" />
.
.
</manifest>
Assurez-vous d’utiliser Gradle 0.11 et supérieur pour utiliser la fusion Manifest.
Solution 2:
Remplacez compile 'com.Android.support:support-v4:+'
par compile 'com.Android.support:support-v4:20.+'
dans build.gradle
. Cela empêchera Gradle d'utiliser v4:21.0.0
qui nécessite la version L.
Cependant, si l'une de vos dépendances externes utilise la même chose. Vous devrez probablement attendre qu'ils mettent à jour la même chose.
Solution 3:
Supprimer/Commenter <version>21.0.0-rc1</version>
dans votre fichier <Android-sdk>/extras/Android/m2repository/com/Android/support-v4/maven-metadata.xml
Répétez la même chose pour support-v7
<uses-sdk tools:node="replace" />
Ne fonctionne plus.
remplacez uses-sdk
par
<uses-sdk tools:overrideLibrary="com.packagename.of.libary.with.conflict" />
et ajouterxmlns:tools="http://schemas.Android.com/tools"
dans le fichier AndroidManifest.xml
Le problème se pose toujours avec les dépendances transitives. Gradle offre un moyen de forcer l'utilisation d'une version spécifique d'une dépendance.
Par exemple, vous pouvez ajouter quelque chose comme:
configurations.all {
resolutionStrategy {
force 'com.Android.support:support-v4:20.+'
force 'com.Android.support:appcompat-v7:20.+'
}
}
à votre build.gradle.
Si vous souhaitez en savoir plus sur les stratégies de résolution des graduations, consultez ce guide http://www.gradle.org/docs/current/dsl/org.gradle.api.artifacts.ResolutionStrategy.html
J'ai trouvé ceci en lisant le numéro correspondant que je lierai ici
Dans le fichier build.gradle, il s’agissait par défaut de compiler 'com.Android.support:support-v4:+'. Ainsi, lorsque vous générez le projet gradle, le projet envisagé serait com.Android.support:support-v4:21.0.0-rc1. en raison de la récente version de prévisualisation du développeur L.
Apportez des modifications dans la ligne suivante et le problème sera résolu . Changer
compile 'com.Android.support:support-v4:+'
à
compile 'com.Android.support:support-v4:20.+'
De même, lorsque vous utilisez la bibliothèque de support v7-appcompat, effectuez la modification à partir de
compile 'com.Android.support:appcompat-v7:+'
à
compile 'com.Android.support:appcompat-v7:20.+'.
En ajoutant aux réponses correctes ci-dessus, le problème peut toujours se produire en raison de l'imbrication de bibliothèques. Dans ce cas, essayez comme dans l'exemple ci-dessous:
compile 'com.Android.support:support-v4:20.+'
compile ('com.github.chrisbanes.actionbarpulltorefresh:extra-abs:+') { // example
exclude group: 'com.Android.support', module:'support-v4'
exclude group: 'com.Android.support', module:'appcompat-v7'
}
pour les personnes créant des applications hybrides à l'aide de la CLI de cordova, cette commande vous aidera
cordova build Android -- --minSdkVersion=15
oui, il utilise double double tirets comme vous l'avez vu.
Pour les personnes confrontées à ce problème dans la version bêta de Android Studio, la réponse acceptée ne réglait pas mon problème. Lors de l’importation d’un projet téléchargé depuis GitHub, j’avais dans mon fichier build.gradle ce qui suit, donnant une erreur en question:
dependencies {
compile 'com.Android.support:support-v4:+'
}
Mais dans mon dossier de bibliothèque externe, j'ai ce dossier:
support-v4-21.0.0-rc1 //note the 21
J'ai résolu le problème ci-dessus en remplaçant la dépendance par:
dependencies {
compile 'com.Android.support:support-v4:20.+' //20 used less than available strange but works
}
Remarque: vous devrez peut-être également télécharger un niveau d'api inférieur à celui actuellement disponible dans Android Studio pour certaines bibliothèques et certains projets afin que cela fonctionne correctement.
J'ai également eu le même problème et les changements suivants m'ont aidé:
de:
dependencies {
compile 'com.Android.support:support-v4:+'
à:
dependencies {
compile 'com.Android.support:support-v4:20.0.0'
}
J'ai résolu le problème en modifiant la ligne ci-dessous dans build.gradle et ça marche! :-)
ajout de la version 20. + '
De
dependencies {
compile 'com.Android.support:appcompat-v7:+'
}
À
dependencies {
compile 'com.Android.support:appcompat-v7:20.+'
}
compile('com.Android.support:support-v4:19.1.0'){
force = true
}
M'a aidé, pris de ici
Je fais toutes les solutions ici sans résultat, donc je cherche ailleurs et j'ai trouvé un moyen de tromper l'IDE, il faut donc mettre une ligne dans le Mainfest pour que Gradle utilise un autre vous mettez sur build.gradle la ligne est:
<uses-sdk tools:node="replace" />
juste ça et ça marche.
J'espère que ça aide.
Vous devez configurer toutes les bibliothèques de supports et appcompat avec la version 19. +
Si la recommandation de quitter la bibliothèque de support avec la version 19. + ne fonctionne pas, vous pouvez essayer le conseil suivant de votre fichier AndroidManifest.
Ajoutez d'abord ce code:
xmlns:tools="http://schemas.Android.com/tools"
Et ensuite, au niveau de l'application (pas à l'intérieur de l'application!)
<uses-sdk tools:node="replace" />
Vous devez supprimer de build.gradle compile 'com.Android.support:support-v13:+'
Voici le nouveau bogue enregistré pour ce btw https://code.google.com/p/Android/issues/detail?id=72430
En supposant que vous utilisiez le référentiel de support, la solution consiste à commenter ou à supprimer la ligne.
21.0.0-rc1in. Dans le fichier de liste de référentiels Maven local /extras/Android/m2repository/com/Android/support-v4/maven-metadata.xml
Dans Android Studio 1.1.0: Fichier - Structure du projet - Flavors d'onglets - Sélectionnez la version minimale du SDK qui est supérieure à celle de Manifest
J'ai des projets pour lesquels je préfère cibler L.MR1 (SDKv22) et d'autres pour lesquels je préfère KK (SDKv19). Votre résultat peut être différent, mais cela a fonctionné pour moi.
// Targeting L.MR1 (Android 5.1), SDK 22
Android {
compileSdkVersion 22
buildToolsVersion "22"
defaultConfig {
minSdkVersion 9
targetSdkVersion 22
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
// google support libraries (22)
compile 'com.Android.support:support-v4:22.0.0'
compile 'com.Android.support:appcompat-v7:22.0.0'
compile 'com.Android.support:cardview-v7:21.0.3'
compile 'com.Android.support:recyclerview-v7:21.0.3'
}
// Targeting KK (Android 4.4.x), SDK 19
Android {
compileSdkVersion 19
buildToolsVersion "19.1"
defaultConfig {
minSdkVersion 9
targetSdkVersion 19
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
// google libraries (19)
compile 'com.Android.support:support-v4:19.1+'
compile 'com.Android.support:appcompat-v7:19.1+'
compile 'com.Android.support:cardview-v7:+'
compile 'com.Android.support:recyclerview-v7:+'
}
Essayez de supprimer les dossiers build de votre projet et resynchronisez votre projet de dégradé pour le reconstruire. En outre, comme d’autres l’ont dit dans cet article - au lieu de faire quelque chose comme ceci:
compile 'com.Android.support:support-v4:19.+'
faire ceci:
compile 'com.Android.support:support-v4:19.1.0'
Pour moi, le problème comme celui-ci est résolu en modifiant le
minSdkVersion 14
Dans le fichier build.gladdle et utilisez celui spécifié dans le message d'erreur
mais le problème était
Manifest merger failed : uses-sdk:minSdkVersion 14 cannot be smaller than version 15 declared in library
J'ai donc changé de 14 à 15 dans le fichier build.gladdle et cela fonctionne
essaie.
N'oubliez pas que vous devez éditer build.gradle dans le sous-dossier 'app' de votre projet et non dans le dossier du projet. J'ai perdu une journée de travail à essayer de résoudre un problème avec la version "L".
Merci @Murtuza. Votre réponse m'a aidé à résoudre mon problème mais dans mon cas
compile 'com.Android.support:support-v13:19.+
également, avec
compile 'com.Android.support:support-v4:19.+'
compile 'com.Android.support:appcompat-v7:19.+'
de compile 'com.Android.support:support-v4:+'
compile 'com.Android.support:support-v7:+'
compile 'com.Android.support:support-v13:+'
J'espère que cela pourrait aider quelqu'un
La seule chose qui a fonctionné pour moi est la suivante:
Dans project.properties, j'ai changé:
cordova.system.library.1 = com.Android.support: support-v4: + à cordova.system.library.1 = com.Android.support: support-v4: 20. +
J'ai la deuxième solution:
https://dl.dropboxusercontent.com/u/16403954/Android-21.Zip
en sdk\platforms\
changer build.gradle comme
compileSdkVersion 21
buildToolsVersion "20.0.0"
defaultConfig {
applicationId "package.name"
minSdkVersion 10
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
ajouter
<uses-sdk tools:node="replace" />
dans le manifeste avec xmlns:tools="schemas.Android.com/tools"
;
Aller au sdk\extras\Android\m2repository\com\Android\support\support-v4\21.0.0-rc1\
décompressez support-v4-21.0.0-rc1.aar et modifiez AndroidManifest.xml like
de
<uses-sdk
Android:minSdkVersion="L"
Android:targetSdkVersion="L" />
à
<uses-sdk
Android:minSdkVersion="4"
Android:targetSdkVersion="21" />
P.S. Vous pouvez le faire avec toutes les bibliothèques de support nécessaires.
Vous venez de changer le niveau minimum de l'API de Build Settings -> Player Settings -> Other Settings -> Minimum SDK Level
à une version supérieure.
Ciblez simplement le minSdkVersion
requis, et remplacez-le par le nécessaire. Dans mon cas, minSdkVersion
était 14
.
Le passage à minSdkVersion
16
a résolu le problème.
compileSdkVersion 29
defaultConfig {
applicationId "e.futaaapp"
minSdkVersion 14
targetSdkVersion 29
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
compileSdkVersion 29
defaultConfig {
applicationId "e.futaaapp"
minSdkVersion 16
targetSdkVersion 29
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
Solution: Echec de la fusion manifeste Application d'attribut @ ppComponentFactory ...
Si vous utilisez l'une des dernières et meilleures bibliothèques Firebase ou d'autres bibliothèques, celles-ci utilisent en réalité AndroidX au lieu d'Android.support. Le problème peut alors résulter de l'échec de la fusion de manifeste! Donc, dans ce cas, votre projet doit migrer vers AndroidX. Suivez donc le lien: https://firebase.google.com/support/release-notes/Android#update_-_june_17_2019
Ou regardez cette vidéo. https://youtu.be/RgveQ4AY1L8 Merci.
Le meilleur moyen est de laisser Android Studio résoudre le problème.
J'ai fait le dessous, et ça a bien fonctionné.
Ouvrez votre projet dans Android Studio, les erreurs se produiront. Si un lien vous permet de le réparer, cliquez dessus.
Rouvrez votre projet dans Android Studio, les erreurs apparaîtront, il y aura un lien si ce n'est pas donné à l'étape 1, cliquez sur le lien donné pour le réparer.
Notez que les deux opérations ont pris plusieurs minutes, mais ont résolu tous les problèmes.