Je développe ce petit projet depuis quelques jours maintenant mais tout à coup aujourd'hui, Android Studio a commencé à me donner cette erreur
Error:Execution failed for task ':app:processDebugManifest'.
> Manifest merger failed : uses-sdk:minSdkVersion 14 cannot be smaller than version 14 declared in library com.Android.support:support-v4:21.0.0-rc1
J'ai compris que c'était parce qu'il essayait de compiler la bibliothèque d'Android-L. La version que je veux compiler est l'ancienne version mais ce ne sera pas le cas. Il continue de me donner l'erreur ci-dessus, quelle que soit la version que j'entre. Voici les dépendances.
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.Android.support:appcompat-v7:20.+'
compile 'com.Android.support:support-v4:20.+'
}
MISE À JOUR
Je viens d'installer Android Studio Beta et j'ai changé mes dépendances pour celle suggérée par Eugen ci-dessous. Mais la synchronisation du projet donne la même erreur quelle que soit la version d'Appcompat, supporte la version que je spécifie. Elle donne cette erreur chaque fois que je synchronise
uses-sdk:minSdkVersion 14 cannot be smaller than version L declared in library com.Android.support:support-v4:21.0.0-rc1
Mes dépendances mises à jour
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.Android.support:appcompat-v7:19.+'
compile 'com.Android.support:support-v4:19.+'
}
MISE À JOUR 2
Je ne pense pas comprendre le système de dépendances de Android Studio correctement. Je viens de supprimer à la fois la compatibilité et la prise en charge des dépendances et cela me donne toujours la même erreur. Dois-je supprimer le initialement inclus des bibliothèques de quelque part?
build.gradle
* note - J'ai à nouveau ajouté ces deux bibliothèques et essayé la synchronisation, juste au cas où. Mais pas de chenges.
apply plugin: 'Android'
Android {
compileSdkVersion 19
buildToolsVersion "19.1.0"
defaultConfig {
applicationId "taz.starz.footynews"
minSdkVersion 14
targetSdkVersion 19
versionCode 1
versionName "1.0"
}
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.Android.support:appcompat-v7:19.+'
compile 'com.Android.support:support-v4:19.+'
compile project(':ParallaxScroll')
compile files('src/main/libs/Header2ActionBar-0.2.1.jar')
compile 'com.arasthel:gnavdrawer-library:+'
compile 'com.koushikdutta.ion:ion:1.2.4'
}
Build.gradle de niveau supérieur
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.Android.tools.build:gradle:0.12.+'
}
}
allprojects {
repositories {
mavenCentral()
}
}
MISE À JOUR: Trouvé le vrai correctif pour mon cas. Assurez-vous qu'aucune de vos dépendances n'inclut silencieusement support-v4 r21 en procédant ainsi dans votre build.gradle
:
compile("com.blahblah:blah:123") {
exclude group: 'com.Android.support', module:'support-v4'
}
Vous pouvez ajouter le exclude
à toutes les bibliothèques, puis les supprimer une par une jusqu'à ce que vous trouviez celle qui récupérait support-v4
et en vous donnant l'erreur. Et laissez exclude
sur celui-là.
Un nouveau bogue a été déposé ici: https://code.google.com/p/Android/issues/detail?id=724
En supposant que vous utilisez le référentiel de support, la solution consiste à commenter ou supprimer la ligne
<version>21.0.0-rc1</version>
dans le fichier de liste de référentiel Maven local à <Android-sdk>/extras/Android/m2repository/com/Android/support-v4/maven-metadata.xml
Avec les dernières mises à jour, en utilisant ceci:
compile 'com.Android.support:support-v4:20.+'
ou
compile 'com.Android.support:support-v4:+'
vous utilisez la bibliothèque de support dans L-preview.
Ces bibliothèques de support déclarent minSdkVersion L
.
Vous devez forcer le minSdkVersion
à être 'L' (consultez la doc)
En effet, ces API ne sont pas définitives. C'est un moyen d'empêcher l'installation des applications sur un appareil API 21 final ou de les publier sur le magasin à l'aide de la prise en charge lib 21-r1.
En utilisant
compile 'com.Android.support:support-v4:19.1.0'
vous utilisez la "vieille" bibliothèque de support 19.1.0.
J'ai eu le même problème qu'une de mes dépendances avait spécifié 'support-v7: +' comme dépendance. J'ai pu retrouver cela en utilisant gradle dependencies
Gradle fournit un moyen de forcer la résolution vers une version spécifique. J'ai fini par avoir ça dans mon build.grade
:
compile('com.Android.support:appcompat-v7:19.1.0') {
// really use 19.1.0 even if something else resolves higher
force = true
}
compile('com.Android.support:support-v4:19.1.0'){
force = true
}
Cela a fonctionné pour moi
C'est exact. La nouvelle bibliothèque de support n'est pas (encore) compatible avec les anciennes versions de Android.
Changez votre gradle en:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.Android.support:appcompat-v7:19.1.+'
compile 'com.Android.support:support-v4:19.1.+'
}
J'espère que vous avez encore quelque chose comme ça:
Android {
compileSdkVersion 19
buildToolsVersion '19.1.0'
defaultConfig {
minSdkVersion 14
targetSdkVersion 19
}
}
J'obtenais l'erreur:
L'exécution a échoué pour la tâche ': app: processDebugManifest'.
La fusion du manifeste a échoué: uses-sdk: minSdkVersion 1 ne peut pas être inférieur à la version 4 déclarée dans la bibliothèque C:\Users\Igor\AppData\Local\Android\sdk\samples\Android-21_1\legacy\ApiDemos\app\build\intermediates\exploded-aar\com.Android.support\support-v4\21.0.3\AndroidManifest.xml Suggestion: utilisez les outils: overrideLibrary = "Android.support.v4" pour forcer l'utilisation
Ensuite, je l'ai résolu en mettant ce qui suit dans mon defaultConfig bloc gradle:
minSdkVersion 15
targetSdkVersion 21
Dans Android SDK Manager installe "Android Support Repository" du groupe "extra". Cela m'aide. Lorsque j'ai ajouté "exclude group: 'com.Android.support', module: 'support-v4 '"la construction est terminée, mais d'autres erreurs se sont produites